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...
HN user
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...
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 main algorithm is described here[0]. It's the most recent videos from the 40 most subscribed channels on the instance.
YouTube's recommendations are still used. They'll appear the same as if you viewed YouTube with a clean browser session, although you can disable them in your preferences if you'd like (under "Show related videos").
0. https://github.com/omarroth/invidious/issues/217#issuecommen...
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].
Essentially because it replicates the way a browser works, similar to youtube-dl. I would very much recommend taking a look through [0] for some more info, but one of the main goals of the project is to avoid use of any Google APIs. This also includes login, as mentioned in an earlier comment[1].
Would you mind clarifying what you mean? If you're looking for search filters you can use them using operators[0][1], similar to Google or DDG.
0. https://github.com/omarroth/invidious/wiki/Search-operators
1. https://invidio.us/search?q=type%3Aplaylist+sort%3Adate+musi...
Breaking changes have been fairly minor and I haven't found them to be an issue for the project. It's also possible to anticipate most changes early (compile with `crystal --warnings all`).
I'm not sure I would recommend it for something on the scale of Apple or Microsoft, but for a personal project like this I've found it a very enjoyable experience.
I agree. Unfortunately OAuth is impractical for this project, as it requires registering your application with Google.
Instead I've done my best to make clear how it works[0][1] and what is stored[2].
As mentioned in a sibling comment Google does not have a good track record with similar projects. AFAIK the only project that provides similar functionality is youtube-dl[3], which works the same way.
Important to note is that this functionality is optional; you do not need to log in with Google to store subscriptions or preferences. The main benefit currently is that it will automatically sync subscriptions with YouTube, otherwise I would recommend creating a new account on Invidious and then importing subscriptions from YouTube.
0. https://www.reddit.com/r/SideProject/comments/8wvazc/invidou...
1. https://github.com/omarroth/invidious/blob/8af87f1/src/invid...
3. https://github.com/ytdl-org/youtube-dl/blob/76e510b/youtube_...
If there is an instance[0] in your region, I expect that will work better for you. Otherwise you might try adding `&local=true` to the end of the video URL or enabling "Proxy videos?" in your preferences.
[0]. https://github.com/omarroth/invidious/wiki/Invidious-Instanc...
Would you mind providing some more details on what issues you're encountering?