invidious
invidious copied to clipboard
[Enhancement] Set DASH and HLS by default
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:
- HLS has been implemented by @syeopite: https://github.com/iv-org/invidious/pull/4118. allowing iOS clients to not use the proxy feature by default
- We have switched to video.js 8 which handle way better things like dropout or glitches: https://github.com/iv-org/invidious/pull/4439
- piped-proxy has been the recommended solution for proxying the video stream on public instances: https://github.com/TeamPiped/piped-proxy/issues/111
otherwise most public instances will collapse under the load.
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.
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.
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?
The HLS implementation has not been merged yet
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.
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.
If it is difficult to fix regular switch (remove endless attempts to load video) then another setting to fall back will be good enough.
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.
@artshevtsov please open a separate issue you are offtopic. This is about setting DASH by default in invidious.
wasnt HLS disabled on firefox mobile?
https://bugzilla.mozilla.org/show_bug.cgi?id=1911651
piped-proxy has been the recommended solution for proxying the video stream on public instances: https://github.com/TeamPiped/piped-proxy/issues/111 otherwise most public instances will collapse under the load.
There is one really annoying problem on piped-proxy that doesn't happen with https://github.com/TeamPiped/http3-ytproxy on any Chromium based browser which is that is not able to reproduce any video using DASH, but Firefox and it's forks are able to reproduce DASH while using piped-proxy as a videoplayback proxy.
This happens on PC and Android. Chrome for PC and Android aren't able to reproduce the video without having the developers tools open. Firefox for PC and Android are able to reproduce the video just fine.
https://s.ayaya.beauty/xus
In the last seconds, the video starts to play instantly after I attach the DevTools inspect to the Browser making this hard to debug. I used Stock Google Chrome on both devices but this happens on Bromite, Cromite and Mulch
https://s.ayaya.beauty/xus
Same as Android Chrome. If I open the Developer Tools the video starts to play instantly.
I would like to migrate to piped-proxy but I can't if this annoying bug is present.
DASH is now by default in Invidious master branch (not stable).