FreeTubeApp / FreeTube

An Open Source YouTube app for privacy
https://freetubeapp.io/
GNU Affero General Public License v3.0
13.37k stars 825 forks source link

Change Invidious Instance when Stutters Occur #1791

Open MetalNeo opened 3 years ago

MetalNeo commented 3 years ago

Is your feature request related to a usage problem (not a bug)? Please describe. I occasionally run into an issue where video playback stutters and/or is slow to load. Sometimes, errors such as those in #1533 appear in the console and the DASH versions of videos fail to load. Other times, no errors appear. To me, this appears to be an issue with Invidious, not an issue with Freetube.

Describe the solution you'd like to see implemented I would like for Invidious instances to be shuffled again when stuttering occurs (perhaps if buffering occurs 3 or more times) or the DASH file fails to load and attempt to see if it is available in another instance. I believe this could help reduce the amount of manual instance setting changing needed to get playback that is fast/performant enough to watch at. Potentially, instances could be placed on a blacklist which would reset after enough time has passed.

Describe alternatives you've considered To combat this issue, I will usually either temporarily set a specific Invidious instance or restart the app to randomly select a different one. This usually solves the issue. I may switch to using one specific instance, but I would like to avoid that to help spread the load more evenly.

Screenshots Errors are the same as though in #1533 when they occur.

Additional context I am preferring local API with fallback enabled and am not proxying videos through Invidious.

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 28 days with no activity. Remove stale label or comment or this will be closed in 7 days.

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 28 days with no activity. Remove stale label or comment or this will be closed in 7 days.