Re: youtube, vimeo & others

Fabian Keil <[email protected]>
Newsgroups gmane.comp.web.privoxy.user
Message-ID <[email protected]>
Kirk Wolff <[email protected]> wrote:

> I'm trying to control what videos my children are allowed to see on
> their devices and I've played with squidguard and dansguardian. The
> YouTube content filter is totally unsuitable for what i want to do. I
> want to approve each video they are allowed to see so they aren't able
> to distract themselves from their schoolwork.
> 
> Unfortunately the online program they use draws from many different
> video hosting sites. It's not as simple as filtering on the video url
> because the embedded player calls on innumerable uris. Also, Microsoft
> family seems to mostly work, but it doesn't block search within a page
> on YouTube or Vimeo which means they can watch anything they want from
> any allowed video page.
> 
> Since what I'm basically trying to do is filter, i would think privoxy
> would be powerful enough to accomplish this. One thing I've noticed is
> there's something about "YouTube API v3 key" that a few commercial
> offerings are using for filtering YouTube, but this doesent address
> other platforms. Does anyone understand how to do this?

I don't think Privoxy is powerful enough to properly restrict
access to white-listed videos on youtube. As you mentioned,
watching a single video requires numerous requests to numerous
hosts and white-listing a single URL is insufficient.

From watching a single video I get:

fk@t520 /tmp/youtube-log $privoxy-log-parser.pl --statistics --url-statistics-threshold 1 --host-statistics-threshold 1 youtube.log 
Client requests total: 158
Crunches: 15 (9.49%)
Blocks: 15 (9.49%)
Fast redirections: 0 (0.00%)
Connection timeouts: 0 (0.00%)
Connection failures: 0 (0.00%)
Outgoing requests: 143 (90.51%)
Server keep-alive offers: 0 (0.00%)
New outgoing connections: 143 (90.51%)
Reused connections: 0 (0.00%; server offers accepted: 0.00%)
Empty responses: 0 (0.00%)
Empty responses on new connections: 0 (0.00%)
Empty responses on reused connections: 0 (0.00%)
Client connections: 170
Bytes transfered excluding headers: 18524028
Client requests per connection distribution:
     160: 1
       6: 3
       4: 2
Enable --show-complete-request-distribution to get less common numbers as well.
Improperly accounted requests: ~28
Method distribution:
     129 : GET     
      29 : POST    
Client HTTP versions:
     158 : HTTP/1.1
HTTP status codes:
     143 : 200     
      15 : 403     
Requested URLs:
12 : https://www.youtube.com/youtubei/v1/log_event?alt=json&key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8
6 : https://googleads.g.doubleclick.net/pagead/id
2 : https://i.ytimg.com/vi/JmcA9LIIXWw/maxresdefault.jpg
1 : https://r5---sn-25ge7nsl.googlevideo.com/videoplayback?expire=1590774002&ei=kvTQXsn-N6PxxgK6173ADg&ip=51.15.80.14&id=o-AGbgfPJPzS-NyGkgof9-afdOTO0I3ccrOVT1p_Pg9qcE&itag=133&aitags=133%2C134%2C135%2C160%2C242%2C243%2C244%2C278%2C394%2C395%2C396%2C397&source=youtube&requiressl=yes&mh=Ja&mm=31%2C29&mn=sn-25ge7nsl%2Csn-25glen7l&ms=au%2Crdu&mv=m&mvi=4&pl=18&gcr=nl&initcwndbps=481250&vprv=1&mime=video%2Fmp4&gir=yes&clen=4402079&dur=235.520&lmt=1584652419131490&mt=1590752320&fvip=5&keepalive=yes&c=WEB&txp=5532432&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhALfhK5ysv3TAKK8L622EEcSSmaBuVvu0szOYe-Fv0gusAiEA_HUcGQ8SVdpf2uVSYigzyryauDG_7wZuAsxBMefzbyE%3D&alr=yes&sig=AOq0QJ8wRQIhAL5r5tJMNVEZT2h79hdq_wlEdgofG4TZsIJo-ot1YVBQAiBlDL_v6xaeotXtD1buSAixLV_UzMQfE4lCI9bJJ9504Q%3D%3D&cpn=6Oelrwj3tdyQ5_LU&cver=2.20200528.05.00&range=0-1331&rn=18&rbuf=0
1 : https://r5---sn-25ge7nsl.googlevideo.com/videoplayback?expire=1590774002&ei=kvTQXsn-N6PxxgK6173ADg&ip=51.15.80.14&id=o-AGbgfPJPzS-NyGkgof9-afdOTO0I3ccrOVT1p_Pg9qcE&itag=140&source=youtube&requiressl=yes&mh=Ja&mm=31%2C29&mn=sn-25ge7nsl%2Csn-25glen7l&ms=au%2Crdu&mv=m&mvi=4&pl=18&gcr=nl&initcwndbps=481250&vprv=1&mime=audio%2Fmp4&gir=yes&clen=3813359&dur=235.566&lmt=1584637982848578&mt=1590752320&fvip=5&keepalive=yes&c=WEB&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgLIahbysnv_TOEKdlrlDHqpej4nI0j2nOO4LKdYHKLjMCIDA_yagqCu5uEokaXBXFWOD0c3kAPjnWa6ZlNPLazwex&alr=yes&sig=AOq0QJ8wRgIhAOPYioVjeaHw2HmBNUpSRPaqKFDCztdH9yPhgtKa2nW0AiEAz4f3jSu_9-YQFKiv8Sjqgqm-SrdOScZz3cmM0pAnOVQ%3D&cpn=6Oelrwj3tdyQ5_LU&cver=2.20200528.05.00&range=2748248-3232903&rn=31&rbuf=91648
1 : https://i.ytimg.com/vi/F6dmMzPVhyY/hqdefault.jpg?sqp=-oaymwEiCKgBEF5IWvKriqkDFQgBFQAAAAAYASUAAMhCPQCAokN4AQ==&rs=AOn4CLD9oTmAvYX2DapCXc3g4SoWDzq2zg
[...]
1 : https://r5---sn-25ge7nsl.googlevideo.com/videoplayback?expire=1590774002&ei=kvTQXsn-N6PxxgK6173ADg&ip=51.15.80.14&id=o-AGbgfPJPzS-NyGkgof9-afdOTO0I3ccrOVT1p_Pg9qcE&itag=160&aitags=133%2C134%2C135%2C160%2C242%2C243%2C244%2C278%2C394%2C395%2C396%2C397&source=youtube&requiressl=yes&mh=Ja&mm=31%2C29&mn=sn-25ge7nsl%2Csn-25glen7l&ms=au%2Crdu&mv=m&mvi=4&pl=18&gcr=nl&initcwndbps=481250&vprv=1&mime=video%2Fmp4&gir=yes&clen=2252162&dur=235.520&lmt=1584639479761296&mt=1590752320&fvip=5&keepalive=yes&c=WEB&txp=5532432&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhAORm9M0h3jy-0EJY08JBmtUD_wshz0js8V0Gz3rhdPDOAiEA-m2X-2vLBZlCND7O0fntNppuD_5WW5EHPHekq5ZnisU%3D&alr=yes&sig=AOq0QJ8wRgIhAK-u2Udtc3HE6sPA9BnHVMlWVsABX7TWQq8xi7HVQ9JsAiEA8e6GuAvgtwtsKe0vmQw5AXYu8Ca1hnDE2zQH0q36kFY%3D&cpn=6Oelrwj3tdyQ5_LU&cver=2.20200528.05.00&range=223284-384100&rn=17&rbuf=18227
1 : https://i.ytimg.com/favicon.ico
1 : https://www.youtube.com/api/stats/ads?ver=2&ns=1&event=4&device=1&content_v=JmcA9LIIXWw&el=detailpage&ei=kvTQXoaoOfTXxN8P4om7oAU&devicever=2.20200528.05.00&bti=23788601&format=2_1_0&break_type=1&conn=0&cpn=6Oelrwj3tdyQ5_LU&lact=9&m_pos=0&mt=41775&p_h=480&p_w=640&rwt=[RWT]&sdkv=h.3.0.0&slot_pos=0&vis=0&vol=100&wt=1590752434667&ad_cpn=[AD_CPN]&ad_id=390916499658&ad_len=-1&ad_mt=0&ad_sys=AdSense&ad_v=0&i_x=[I_X]&i_y=[I_Y]&aqi=
Requested Hosts:
67 : www.youtube.com
27 : r5---sn-25ge7nsl.googlevideo.com
24 : i.ytimg.com
9 : googleads.g.doubleclick.net
7 : r5---sn-pouxga5o-vu2s.googlevideo.com
5 : fonts.gstatic.com
3 : r5---sn-4g5e6nsz.googlevideo.com
3 : www.google.com
3 : fonts.googleapis.com
2 : securepubads.g.doubleclick.net
2 : yt3.ggpht.com
1 : i9.ytimg.com
1 : accounts.google.com
1 : static.doubleclick.net
1 : tpc.googlesyndication.com
1 : www.google.sc
1 : www.google.nl

Even if the list of requests were stable (which it isn't), analysing
them and/or the responses with Privoxy filters which only support
pcrs seems like a futile endeavour.

Using external filters as documented at:
https://www.privoxy.org/user-manual/filter-file.html#EXTERNAL-FILTER-SYNTAX
is unlikely to work either because from looking at a single request or
response the state of Youtube's player isn't obvious.

You probably need an application that can mimic Youtube's
JavaScript-based player and request the white-listed videos
itself. A wrapper around something like youtube-dl could work
but making it accessible to children is probably a fair amount
of work.

Fabian

_______________________________________________
Privoxy-users mailing list
[email protected]
https://lists.privoxy.org/mailman/listinfo/privoxy-users
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEETzbBfzgWkTZUoehQaRgikYuiNxwFAl7Uz2gACgkQaRgikYui
NxyVGA/7BAyx8Oji4BQ8v3byWuQqp7APGhGTcn3h7A9QLGattILGK0jzUJWTsxwN
FRPJnf1pd0ri49bVPytAWW4MDU95/QQ+uTZctu0sX3JDX1KLOUuchrX88q/JFPZ4
+4dInQPi3AUQ9KlLQwrgHCey/PlqAviwcHPK2KwbA9qBIZXgBdNLbovVKgxpfqTp
JpKE3ZUTPOzxk43FmvdwYQ8K4jHpa1cWErSGocjMIAdj6lP2Aqgwbs8F+wINcK+7
IRpmaaLb/nsDxComydxkcbBZTpTL4R3DDiZ7y2p5EdK2Biz/fD5xvMLt7SIglFiy
qR+fUjbO9Hn44kkCTnT8vMOtybEtMdU1aZOkP78JW2leLye6lAurbAEIa2Jw/Eb2
EuvH/ttCPpkoHbAUEZBmQHrUlqKXf6qpMtSn4JNoD37ZLYwsa8UacJocuO2vKoo5
+DZ9q9ibW1rlCW+0wt+Nfog/KcaN755MX38nLLAHyw3mGv7XzS7nx8lmSq2qe1xG
7Mkj8wwgW9y9oD8Ht1rM89YJme72XlxUC5S45jbiNmnsM8uSKEbhYzUl+/UGx91b
1btofAuqsMbmMwCMiOpL/58Ggxb1NV+feobrE1wm3dNYPrD0u3q8al1ZIbbsgNpK
8sRAUiyn+phkMv8LcgRxfIinQlX2hBVPtlEQ5TVQIW3W3cUsIYs=
=e/MS
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.