iv-org / invidious

Invidious is an alternative front-end to YouTube
https://invidious.io
GNU Affero General Public License v3.0
16.04k stars 1.77k forks source link

[Enhancement] Set DASH and HLS by default #4847

Open unixfox opened 3 weeks ago

unixfox commented 3 weeks ago

Since YouTube has removed hd720: https://github.com/iv-org/invidious/issues/4759, the only default resolution available is 480p aka medium.

My feeling is that YouTube is soon going to shutdown the last combined video and sound medium resolution. And users will be left with no video stream to play unless they switch to DASH.

This is why I would like to propose to seriously switch to DASH by default.

Ideally, we should do it when:

This will solve the long time issue of people asking why 1080p is not available and things like this. Non JS users will still have medium quality working until it's no longer available.

For the public instances, we could still allow some that do not offer DASH but listed in a separate section and not listed on https://api.invidious.io. We don't really want to confuse the users with reduced features.

syeopite commented 3 weeks ago

The current HLS implementation from #4118 actually requires proxying.

It has been awhile since I last worked on it but if I recall correctly there was some issues with getting HLS to work without proxying.

charonfaustinus commented 3 weeks ago

medium is actually 360p with very low bitrate. Unwatchable when there's a lot of movement in video.

Also, I've noticed that when I use LibRedirect add-on to redirect all the embed youtube iframes to invidious. The HLS user option doesn't apply, and it only loads medium 360p quality. It'll be nice if we have HLS option set by default.

It has been awhile since I last worked on it but if I recall correctly there was some issues with getting HLS to work without proxying.

Maybe *.googlevideo.com doesn't allow CORS?

syeopite commented 3 weeks ago

The HLS implementation has not been merged yet

Feodor2 commented 3 weeks ago

Please don't, medium is good. You know I use invidious on the old pcs where medium is only possible chance to watch videos. And there is no way to set back medium, because it stuck at loading, if yewtube will remove medium do something with #4865 then, to make possible switch for the audio only.

charonfaustinus commented 3 weeks ago

And there is no way to set back medium

Set by default doesn't mean it'll be removed from the setting. Out of the box, nobody wants to watch 360p youtube crap encoded file. If somehow you can't use hls/dash, there should be a setting to fall back to medium.

This topic is a discussion about setting hls/dash by default. NOT removing it entirely.

Feodor2 commented 3 weeks ago

If it is difficult to fix regular switch (remove endless attempts to load video) then another setting to fall back will be good enough.

artshevtsov commented 1 week ago

Is it possible to add a raw link to an HLS m3u8 playlist from Google's servers to the Invidious API? This way, API users could proxy the playlist themselves using their own resources and potentially proxy the video segments within the m3u8 playlist of HLS stream as well. However, as far as I remember, the video chunks themselves were not proxied; Piped just proxied the playlist itself to bypass CORS restrictions.

This problem is particularly relevant right now because it's no longer possible to obtain HLS streams for most videos through the Piped API due to issues in the NewPipeExtractor project, a downstream dependency. They have not yet implemented a similar algorithm to bypass YouTube's A/B testing, as was done in Invidious with inv_sig_helper, po_token, and visitordata. It seems unlikely that NewPipeExtractor will be fixed anytime soon, as there has been no activity in the repository over the past few weeks.

Additionally, proxying the playlist itself should not add a significant load to Invidious instances. Even if the file is 1 megabyte in size, proxying would add a slight load to the CPU and the network, but it's a fairly easy task for any server. Temporary caching could be added for such files.

unixfox commented 1 week ago

@artshevtsov please open a separate issue you are offtopic. This is about setting DASH by default in invidious.

ashley0143 commented 6 days ago

wasnt HLS disabled on firefox mobile?

https://bugzilla.mozilla.org/show_bug.cgi?id=1911651