Hacker News new | ask | show | jobs
by foray1010 2404 days ago
maximum resolution in Invidious is 720p even 1080p is supported when goes to youtube. Are there some technical limitations?
3 comments

You can watch 1080p if you set "dash" as your default quality in preferences, or by adding `&quality=dash` to the end of a video URL. The reason it isn't enabled by default is that it requires proxying streams, which is more bandwidth intensive[0].

0. https://github.com/omarroth/invidious/issues/34

You shouldnt need to proxy anything, there are in browser js muxers that can splice separate video/audio streams into one, or find jsvideo player capable of playing it directly.
I would recommend reading the issue I linked for why it's necessary. JS needs special access to resources that can't be provided without proxying.

You can see this yourself in a DASH player[0] and testing with e.g. https://invidio.us/api/manifest/dash/id/CvFH_6DNRCY. It will fail with

> Access to XMLHttpRequest at 'https://r5---sn-ab5l6nzy.googlevideo.com/videoplayback' from origin 'http://reference.dashif.org' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

0. http://reference.dashif.org/dash.js/nightly/samples/dash-if-...

The most likely reason for the error is badly decoded signature. YT uses &sig as a "crypto" access token (lasting couple of hours last time I checked). I have zero trouble playing dash videos in standalone mplayer (after manually extracting two video audio sources and decoding proper signatures).
Only browsers have this restriction.

The issue I linked above doesn't appear to explain this. I would instead recommend reading this[0] comment.

0. https://github.com/omarroth/invidious/issues/177#issuecommen...

Ok, so CORS prevents from manual muxing/proper DASH player playback. How about two separate video audio tags with javascript synchronized playback/seeking?
Yes, 720p and past is only stored on the google servers with audio and video seperate. So, the only way to watch at those resolutions is for invidious to pass through the video.

I think there is a plan to get 1080p working though

I would consider 1080p less important than a 360p fallback for videos without 720p source at all.