Invidious: an alternative front-end to YouTube
github.com
github.com
> YouTube may terminate your access, or your Google account’s access to all or part of the Service if YouTube reasonably believes that its provision of the Service to you is no longer commercially viable.
> Terminations and Suspensions by YouTube for Cause
> YouTube may suspend or terminate your access, your Google account, or your Google account’s access to all or part of the Service
The question is why we still don't believe it even when it's written in black and white?
Banned users visiting youtube.com will just get a text page[0] with zero video content. Google will use all the dirty tracking tricks to make sure that banned users remain banned even when their IP or device changes.
One reason I removed youtube vanced and reinstalled official youtube app.
If they really intended to remove the bandwidth cost from people watching youtube without ads they would start by implementing ad blocker detection.
NewsBlur has become the way I find new academic papers (arXiv/journal RSS feeds), consume the news, webcomics, and YouTube videos.
Luckily arXiv RSS feeds are by category, so I scan the titles of all e.g. qbio papers for a day and add the interesting ones to my reading list.
There are other related tools.
VLC, both the desktop client (Linux, MacOS, Windows), and to a somewhat lesser extent, the Android client, can also stream video, most certainly from YouTube. Given the superiority of playback controls and for Picture-in-a-picture / pop-up view, this is my preferred option for Android when I want video, generally.
mps-youtube is an absolutely amazeballs console-based YouTube client. It offers search (text, title, channel), playlists, preferred search context (music or all), playback (audio only, video, resolution), and local client(s).
My preferred mode is to curate a playlist off of various searches, and to play that back, either through mps-youtube, or another player capable of using a local file. A disadvantage of mps-youtube is an application-based API cap which doesn't seem to apply to other options.
mpv is a console multimedia player, successor to mplayer, which can integrate with youtube-dl via the '--ytdl' switch. This means you can stream any youtube-dl supported streaming service or target, from raw MP3s or Oggs, to YouTube, Vimeo, and numerous other online media platforms.
I've been making (slightly) increased use of RSS, but have yet to wire that into my media player(s).
All of the console options work in Android under Termux, a Linux-like console userland that's one of the very few things on Android which Does Not Manifestly Suck.
No switch is needed anymore, mpv has built in support for youtube-dl now through the ytdl.lua extension which automatically uses youtube-dl when necessary. Simply run `mpv [URL]`
You should never, ever be asking people for this information, even if you're transparently passing it upstream. This is a tier-one no-no.
> Expected Array for #[]?(index : Int), not Int64
> Traceback:
> Getting lookup...done, returned 200.
> Getting challenge...done, returned 400.
So, yeah, nope. Why not use Google's SSO to connect accounts?
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_...
Selfishly, the author really does not want to be storing or even handling these kinds of credentials. It makes them a very juicy target for all kinds of bad actors. Imagine finding yourself in the middle of some kind of account hijacking nightmare that you have unwittingly enabled, having to deal with people who trusted you and have lost access to their account or have lost money because people accessed data in their account that allows for id theft.
Basically people should treat passwords (even other people's passwords) as radioactive material and not attempt to handle them unless they really know what they're doing.
I’ve noticed that this project is written in Crystal, is Crystal production ready?
I've looked into it months ago and it seems that there are a lot of breaking changes on every release and this scares me from using it.
Don't worry, as soon as Auntie Apple, Uncle Uber or someone as large as Mr Microsoft goes and adopts Crystal as soon as it reaches 1.0, then we will all immediately run to learning it just like we all did for Kubernetes, Docker, Elixir, Go and finally with its great success and without any formal introduction, we have all wanted to purse learning Mozilla's new and most excellent general-purpose programming language:
Rust.
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.
Unfortunately they took their page down since they didn't find it financially sensible (and after emailing them he doesn't want to open source it)
If you could implement real trending based on views/hours or some logical way that'd be amazing (understandably, this is open-source, so if I find the time I'd love to help too).
Instead I now have a youtube container and have set firefox to open all youtube urls in that container. That way all cookies and session are contained.
Instead I now have a youtube container and have set firefox to open all youtube urls in that container. That way all cookies and session are contained.
What you can also do is delete all cookies and site data when you close your browser and then add some sites to a whitelist (github, HN, etc) in order to prevent having to login all the time. In combination with a good password manager that shouldn't be a big problem anyway.
mps-youtube (terminal-only): https://github.com/mps-youtube/mps-youtube
youtube-viewer: https://github.com/trizen/youtube-viewer
FreeTube (which uses the invidious API): https://github.com/FreeTubeApp/FreeTube
youtube-local (my project): https://github.com/user234683/youtube-local
smtube: https://www.smtube.org/
Minitube: https://flavio.tordini.org/minitube, https://github.com/flaviotordini/minitube
(Note that that's HTTP only, no HTTPS support.)
This app is written in Crystal, with SSR Crystal + HTML templates.
It's source code is pretty interesting. One of the most popular Crystal apps I know of. (Huge fan of both Invidious and Crystal)
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...
I gave up.
[1] - https://freetubeapp.io/
I would much rather see something like this implemented: https://uxdesign.cc/my-attempt-at-redesigning-youtube-for-a-...
> Audio-only mode (and no need to keep window open on mobile)
I frequently watch YouTube over Tor, and they've started making me do lots of reCAPTCHAs and occasionally even rejecting me after I've completed the reCAPTCHAs.
HookTube is an improvement over the real YouTube interface in the sense that it never makes me do CAPTCHAs, except some proportion of videos don't work on HookTube, it just gives a black box saying "Watch this video on YouTube".
From a sample of 1 video that I couldn't watch on HookTube, it worked straight away on Invidious. So it's useful in that sense if nothing else.
Well that sounds horrendous.
Well I don't want my Google account to be associated with the videos I watch. Nor do I want to be automatically signed into YouTube if I login to my Google account and watch a YouTube video.
As long it plays YouTube videos and it removes Google's tracking, then that is enough for me, UX changes is a bonus.
No (direct) YouTube tracking.
No need to sign in for 18+ / age restricted video.
Within the past few days, YouTube's mobile website has changed the player, for me, removing:
- Removing double tap left/right to skip forward/back within the video.
- Removing mute audio control.
- Adding skip forward/back in playlist. A feature I never use (YT's suggestions suck, I curate my own playlist.)
For now, Invidious retains the old player controls, allowing me to mute annoying-ass video and skip forward/back to repeat / bypass interesting / annoying bits.
Especially:
kgg2m7yk5aybusll.onion
axqzx4s6s54s32yentfqojs3x5i7faxza6xo3ehd4bzzsg2ii4fv2iid.onion
I think there is a plan to get 1080p working though
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 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...
Here is a full Pink Floyd album for your streaming pleasure.
https://invidio.us/watch?v=k_MP8URO-Xc
Works perfectly in a private safari window on my iPhone.
Great work!
0. https://github.com/omarroth/invidious/wiki/Search-operators
1. https://invidio.us/search?q=type%3Aplaylist+sort%3Adate+musi...
https://forum.xda-developers.com/android/apps-games/app-yout...
https://www.xda-developers.com/youtube-vanced-apk/
Aside from a few additional options and interface tweaks, the main reason I use it is for playback with the screen off.
Source: I watch YouTube.
In all seriousness you hear creators talking about collapsing revenues due to adblockers all the time.
Bigger ones survive with tools like Patreon but if you're new with only a small fan base? (<10k) It's not viable anymore. The good thing about YT was always being able to take that passion full time.
Artists will always create content, but they will always need to eat too.
So do devs, which is quite often neglected when talking about open source. It often goes along the "well, then do it in your spare time"-line.
Maybe there is a huge gap between expectations and what we, as people, can actually do. There are a few who can make a living off of their channel, but you shouldn't start a youtube channel today, expecting to make some "big money".
The more traditional way would be to start small, gain more and more visibility over time, and at some point companies might be interested in "in-video" promotions, like LTT does.
Or, get paid to do FLOSS. (paid, not donations)
> Artists will always create content, but they will always need to eat too.
Start out as a hobby, then maybe it'll turn into a job. You just need more patience and less expectations instead of the instant gratification. Golden days are long over.
- Artists need to find a new business model then.
- Artists should be hobbyists.
- If it's on the internet, it's mine for the taking.
Why is this acceptable for YouTube? Can we start building and publishing plugins that bypass paid subscriptions for other SaaS services here too?
This is especially strange for music - music artists (in my experience) usually want you to pay for playing their music without video via subscription or by buying an album. This allows complete bypass of that - it's essentially Napster again.
You mean like [1]? Yes!
And so is adblocking.
It does not refute my statement.
The absolute state of the film/TV industry should be enough evidence that piracy is definitely a service problem.