Cimbali / CleanLinks

Converts obfuscated/nested links to genuine clean links.
https://addons.mozilla.org/en-GB/firefox/addon/clean-links-webext/
Mozilla Public License 2.0
76 stars 2 forks source link

Cannot watch embedded youtube videos on slashfilm #38

Closed birdie-github closed 6 years ago

birdie-github commented 6 years ago

When this extension is enabled YouTube embeds at slashfilm.com don't work, e.g. https://www.slashfilm.com/burning-trailer-official-us/

I tried whitelisting slashfilm.com but that didn't help.

I tried adding

|\/embed\/

to the list of "Skip Links Matching" but the add-on apparently ignores this rule.

birdie-github commented 6 years ago

Log for slashfilm.com:

https://www.youtube.com/get_video_info?html5=1&video_id=MuehR3WuZ_E&cpn=Hro2QszWYvvi3jk8&eurl=https%3A%2F%2Fwww.youtube.com%2Fembed%2FMuehR3WuZ_E%3Ffeature%3Doembed&el=embedded&hl=en_US&sts=17798&lact=7&c=WEB_EMBEDDED_PLAYER&cver=20180921&cplayer=UNIPLAYER&cbr=Firefox&cbrver=62.0&cos=Windows&cosver=10.0&width=740&height=416&ei=Av6sW4i1LYXsgAfU-534CQ&iframe=1&embed_config=%7B%7Dhttps://www.youtube.com/embed/MuehR3WuZ_E?feature=oembed

https://www.youtube.com/get_video_info?html5=1&video_id=MuehR3WuZ_E&cpn=Hro2QszWYvvi3jk8&eurl=https%3A%2F%2Fwww.youtube.com%2Fembed%2FMuehR3WuZ_E%3Ffeature%3Doembed&el=embedded&hl=en_US&sts=17798&lact=7&c=WEB_EMBEDDED_PLAYER&cver=20180921&cplayer=UNIPLAYER&cbr=Firefox&cbrver=62.0&cos=Windows&cosver=10.0&width=740&height=416&ei=Av6sW4i1LYXsgAfU-534CQ&iframe=1&embed_config=%7B%7D&playerretry=1https://www.youtube.com/embed/MuehR3WuZ_E?feature=oembed

https://www.youtube.com/get_video_info?html5=1&video_id=MuehR3WuZ_E&cpn=Hro2QszWYvvi3jk8&eurl=https%3A%2F%2Fwww.youtube.com%2Fembed%2FMuehR3WuZ_E%3Ffeature%3Doembed&el=embedded&hl=en_US&sts=17798&lact=7&c=WEB_EMBEDDED_PLAYER&cver=20180921&cplayer=UNIPLAYER&cbr=Firefox&cbrver=62.0&cos=Windows&cosver=10.0&width=740&height=416&ei=Av6sW4i1LYXsgAfU-534CQ&iframe=1&embed_config=%7B%7D&playerretry=2https://www.youtube.com/embed/MuehR3WuZ_E?feature=oembed

birdie-github commented 6 years ago

Skip matching:

youtube\.com\/get_video_info

fixes the issue, but along with #42, are you sure we don't have too many exceptions?

Maybe "Clean Outgoing HTTP requests" by default is an overkill?

Cimbali commented 6 years ago

Whitelisting www.youtube.com works, but I suppose that's not satisfactory?

birdie-github commented 6 years ago

It's the opposite to what you add-on does because in this case external links at youtube will all go through youtube.com/redirect

Cimbali commented 6 years ago

I'm not sure what you mean, but whitelisting targets the origin domain. Now they are both the same in your example, so that's not a really useful distinction.

That is, https://domain.com/get_video_info?[...]&eurl=https%3A%2F%2Fexample.com matches on domain.com, not on example.com.

birdie-github commented 6 years ago

You're right but again I guess we'll have to have too many exceptions and update them all the time.

Disabling "Clean Outgoing HTTP requests" by default looks like a much better solution.

Most people care about actual redirects because it's a privacy issue but when the page fetches external resources in order to work - there's not a lot of privacy going on.

Cimbali commented 6 years ago

There's almost always something fishy privacy-wise when your current URL is passed to another request. To be honest I'm not even sure what youtube needs it for in this case, especially since they already pass the video_id separately.

I mean look at that URL, it's passing more of your information to youtube than it's asking about video information to youtube:

html5         1
video_id      MuehR3WuZ_E
cpn           Hro2QszWYvvi3jk8
eurl          https://www.youtube.com/embed/MuehR3WuZ_E?feature=oembed
el            embedded
hl            en_US
sts           17798
lact          7
c             WEB_EMBEDDED_PLAYER
cver          20180921
cplayer       UNIPLAYER
cbr           Firefox
cbrver        62.0
cos           Windows
cosver        10.0
width         740
height        416
ei            Av6sW4i1LYXsgAfU-534CQ
iframe        1
embed_config  {}
playerretry   2

So we can see you're on Windows 10.0 with Firefox 62.0, with a 740x416 viewport (for the iframe probably), and so on (I'm guessing CBR must be Client BRowser, COS must be Client OS. CPN some Client Product Number maybe?)

I think what we should strive towards is to strip the useless info instead, but I don't have a lot of time these days to implement finer-grain URL cleaning. For example, it would be interesting to see if just passing video_id on the URL is enough for the video to work?