FreeTubeApp / FreeTubeApp/FreeTube
[Bug]: Default Invidious instance is not reachable
- Dominant language
- Vue
- Stars
- 21.9k
- Forks
- 1.5k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 62
Description
### Guidelines
- [x] I have encountered this bug in the [latest release of FreeTube](https://github.com/FreeTubeApp/FreeTube/releases).
- [x] I have encountered this bug in the [official downloads of FreeTube](https://github.com/FreeTubeApp/FreeTube#official-downloads). **The only official downloads are from the [https://freetubeapp.io](https://freetubeapp.io/#download) website, the [FreeTubeApp/FreeTube GitHub repository](https://github.com/FreeTubeApp/FreeTube/releases) and the [io.freetubeapp.FreeTube flatpak](https://flathub.org/en/apps/io.freetubeapp.FreeTube) from Flathub.**
- [x] I have [searched the issue tracker for **open and closed** issues](https://github.com/FreeTubeApp/FreeTube/issues?q=is%3Aissue+sort%3Arelevance-desc) that are similar to the bug report I want to file, without success.
- [x] I have searched the [documentation](https://docs.freetubeapp.io/) for information that matches the description of the bug I want to file, without success.
- [x] This issue contains only one bug.
- [x] I have read and agree to follow the [rules](https://docs.freetubeapp.io/community/rules/).
### Describe the bug
1. Go to `Settings > General > Preferred API Backend` and chose "Invidious API"
2. Observe that current Invidious Instance is set to https://inv.zoomerville.com
3. Observe that FreeTube can't fetch anything
### Expected Behavior
Default Invidious instance chosen should work, or shouldn't be used.
### Issue Labels
usability issue
### FreeTube Version
v0.25.1-beta
### Operating System Version
Bazzite
### Installation Method
Flathub
### Primary API used
Invidious API
### Last Known Working FreeTube Version (If Any)
_No response_
### Upload screenshots or videos
_No response_
### Additional Information
This issue **is** a duplicate of https://github.com/FreeTubeApp/FreeTube/issues/9473, but my issue is more that the design should be improved for the automatic selection, not that Invidious instance should be fixed.
This issue is similar to https://github.com/FreeTubeApp/FreeTube/issues/3161 but is not a duplicate. However, they could be merged together.
I thought that implementing something like suggested here https://github.com/FreeTubeApp/FreeTube/issues/3161#issuecomment-1424281446 would be a good solution to this issue, but it raises some design questions.
Currently, none of the instances listed here https://api.invidious.io are usable. They all have their APIs disabled, and the only one that does not (https://inv.zoomerville.com), is not returning a valid JSON (from what I understand, it is protected by a captcha).
Filtering this list would mean returning an empty list of available instances, which will then fallback to using the static [invidious-instances.json](https://github.com/FreeTubeApp/FreeTube/blob/development/static/invidious-instances.json) file. This file is just the same list, but older, so none of them are reachable either.
This raises a number of questions:
- Is the invidious-instances.json file still relevant?
- If still relevant, should it be updated to the current list of available instances, which is currently none?
- If fetching https://api.invidious.io does not return any useful results, and if fallbacking to the static file does not contain anything either, what should FreeTube do? Maybe we could just show a toast message or an indication that the current invidious instance field *must* be *manually* filled to use it.
### Nightly Build
- [ ] I have encountered this bug in the latest **official** [nightly build](https://docs.freetubeapp.io/development/nightly-builds), do not check this box if you are using an unofficial or custom build.
Contributor guide
Research direction
Start by reviewing static/invidious-instances.json and comparing it with the current results from https://api.invidious.io. Read the related discussions in issues 9473 and 3161 before deciding how automatic instance selection should behave when no usable instance is available. Done means the fallback and user-facing behavior are explicitly agreed and the default no longer points to an unusable instance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json
- Domain
- api
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100