[HN Gopher] Invidious: An alternative front-end to YouTube
       ___________________________________________________________________
        
       Invidious: An alternative front-end to YouTube
        
       Author : jerheinze
       Score  : 93 points
       Date   : 2021-09-20 06:55 UTC (16 hours ago)
        
 (HTM) web link (docs.invidious.io)
 (TXT) w3m dump (docs.invidious.io)
        
       | tra3 wrote:
       | Is anyone aware of a comparable iOS app?
        
       | jqpabc123 wrote:
       | How well does it work with subscriptions?
        
         | waz0wski wrote:
         | it has channel rss feeds you can put into $reader of choice and
         | avoid any dependence on youtube account or tracking
        
       | circleegg wrote:
       | For all the greasemonkey heads out there:
       | https://openuserjs.org/scripts/marcowahl/yt2invidious provides a
       | button to conveniently switch from yt to invidious.
        
       | Helmut10001 wrote:
       | As a father of a three year old, invidious was a relief. He can
       | now watch his 10Minute toons / day without all the other stuff
       | and auto-continuation (that would turn on everytime after I
       | disabled it). I self-hosted it through my own server, hosted at a
       | remote site, through IPSEC, with 5000kbit upstream. Works with
       | invidious!
        
       | stalfosknight wrote:
       | I wish Invidious would allow more than 720p.
        
       | Gualdrapo wrote:
       | I really like it. The UI is clean, but lately music videos won't
       | play sometimes because "The media could not be loaded, either
       | because the server or network failed or becase the format is not
       | supported" (for example: https://yewtu.be/watch?v=3gy8hkVMqwQ),
       | no matter what instance I try.
       | 
       | Not sure if it's my own web browser, but this was not happening
       | before.
        
         | acco102 wrote:
         | https://www.youtube.com/embed/3gy8hkVMqwQ doesn't work.
         | 
         | https://invidious-us.kavin.rocks/watch?v=3gy8hkVMqwQ works.
        
       | auslegung wrote:
       | My YouTube usage is as follows. Open private Brave tab (prevents
       | lots of tracking and all ads), search for a handful of channels,
       | watch their new stuff, repeat in a day or two.
       | 
       | How would invidious improve or help with that workflow? Again I
       | already use a private Brave tab to prevent tracking and ads.
        
         | Nextgrid wrote:
         | Invidious provides RSS feeds from channels. You can do this
         | with YouTube as well (or at least you could) but it isn't
         | obvious. You add these feeds to an RSS reader and you have
         | privacy-friendly subscription without Google creeping in the
         | background nor annoying you with dark pattern and their
         | perverted idea of GDPR "compliance".
        
       | johnx123-up wrote:
       | But, https://redirect.invidious.io/watch?v=x :                 As
       | of September 1st 2020, invidio.us has closed down.            To
       | see this content, please select another instance,       or visit
       | directly on YouTube.
        
       | 3np wrote:
       | Having run both, I can recommend checking out Piped[0]. Crossover
       | with the famous NewPipe Android app.
       | 
       | IME Piped recently works a lot more reliably with high-res videos
       | compared to Invidious. If you ever have "media not available"
       | etc. Both generally work fine with embeds, so you can use link
       | rewriters in other alt-frontends (nitter/teddit/searx/etc) to
       | have proxied embeds.
       | 
       | Piped can also be substituted for Invidious in Privacy Redirect.
       | 
       | [0]: https://github.com/TeamPiped/Piped
        
       | kiryin wrote:
       | Invidious is awesome, I use it for all of my youtube guilty-
       | pleasure needs. I really wanted to help with the project when the
       | original developer gave up and development stalled a little bit,
       | but crystal is kind of an esoteric choice, while interesting in
       | it's own right. Syntax looks simple enough but I didn't really
       | "get" all the features and tooling based on the documentation
       | available. I guess it doesn't help that messing with youtube is
       | rather complicated when you can't use the API.
        
       | raspyberr wrote:
       | I use Invidious with MPV and Piped (piped.kavin.rocks) in the
       | browser. I find Invidious often doesn't work and Piped doesn't
       | work with MPV.
        
       | gizdan wrote:
       | Invidious is great! Google's/YouTube's heavy push to accept data
       | collection pushed me to use Invidious full time with little
       | regret*.
       | 
       | For those interested, you can use utilise Privacy Redirect (for
       | Firefox[0] and Chrome[1]) to automatically redirect YouTube links
       | to any Invidious instances. It also includes redirects for other
       | OSS clients such as Nitter for Twitter, Bibliogram for Instagram,
       | and others.
       | 
       | * The only issue I've had is that it sometimes refuses to play
       | some videos because the media cannot be loaded. Not really sure
       | why that is, but I'm willing to accept that over data collection.
       | 
       | [0] https://addons.mozilla.org/en-GB/firefox/addon/privacy-
       | redir...
       | 
       | [1] https://chrome.google.com/webstore/detail/privacy-
       | redirect/p...
        
         | mrzool wrote:
         | I love invidious, but this:
         | 
         | > The only issue I've had is that it sometimes refuses to play
         | some videos because the media cannot be loaded.
         | 
         | Happens to me with lots of videos -- about half the videos that
         | I try to open if I had to guess. That makes Invidious pretty
         | much unusable for me.
        
           | gizdan wrote:
           | Try setting quality to dash. This fixes the issue for me
           | quite often, though not all the time.
        
             | mrzool wrote:
             | Thanks for the tip! I'll give it a try.
        
         | brnt wrote:
         | +1 for the Privacy Redirect plugin. Makes using Invidious (and
         | some other platforms) a breeze.
        
           | MayeulC wrote:
           | The killer feature for me is that it also replaces embeds :)
        
       | DarthNebo wrote:
       | Wish YouTube could just nail a feature of preparing a temporary
       | playlist, by allowing you to drag videos from a wall of new
       | subscribed content & then play it without getting bounced off
       | into auto-played recos.
        
         | Orionos wrote:
         | Isn't it the purpose of the new "Add to queue" feature? Hover a
         | video add you'll see a "Watch later" and "Add to queue". Never
         | used it myself.
        
           | DarthNebo wrote:
           | Oh yeah, just checked it out. I thought it would just do the
           | "Watch later" action. From the subscriptions tab, it is
           | easier to do this now.
        
       | Nextgrid wrote:
       | Invidious has been my primary way of using YouTube for over 2
       | years now (combined with an RSS reader to use as
       | "subscriptions").
       | 
       | The official website is near-unusable in Safari and I dread
       | clicking anywhere out of fear of causing a page reload/navigation
       | and waiting for megabytes of JS to try to (poorly) reimplement
       | existing browser behaviors.
       | 
       | Invidious is blazing-fast in comparison. The lack of ads, BS and
       | dark patterns is also a nice bonus but the primary advantage for
       | me is speed.
        
         | okamiueru wrote:
         | Which RSS reader do you use?
        
           | pixxel wrote:
           | Not OP but I use https://www.inoreader.com as a YT feed.
        
           | Nextgrid wrote:
           | News Explorer - it's Mac and iOS only and uses iCloud to
           | sync.
        
       | Steltek wrote:
       | Every time I see an alt-client for Youtube, I feel like this is
       | quickly becoming the BitTorrent vs. Legit DVD/BD game all over
       | again. Here's the thing: I pay for Youtube Premium. Aside from
       | web pages, I'd say it's the biggest non-interactive medium that I
       | consume. And that said, the official Android client
       | SUUUUUCCCKKKSS.
       | 
       | I don't care about blocking ads or downloads. I've already
       | legitimately paid for those features. But I want screen rotation
       | to not suck. I want comments to be easier to read. I want
       | notifications and subscriptions to not be laundered by your
       | shitty recommendation engine. And who the hell thought the Watch
       | Later playlist should pop up/over when I try to play a video?! No
       | one wants that.
       | 
       | I don't mind paying for what I use but I feel like a real sucker
       | when I get a shittier experience compared to pirates.
        
         | okamiueru wrote:
         | Good list. My biggest gripe is still that I cannot queue things
         | on a mobile device. It seems like such a big omission.
        
           | FractalHQ wrote:
           | I've always used "watch later" as a queue- it's very easy to
           | add videos to it while scrolling, then navigate to it and
           | click "play all".
        
         | danShumway wrote:
         | I spent a decent chunk of time paying for Youtube Premium (Red
         | at the time) and eventually I stopped signing in and started
         | using NewPipe on my phone instead, even though I was still
         | paying. Partially that was for privacy reasons, but the bigger
         | reason is that NewPipe is just an improvement over the official
         | app in just about every single way.
         | 
         | Similar experience to you:
         | 
         | - Downloads weren't reliable. I'm paying money to do this
         | "legitimately", and my offline videos just stop working
         | randomly, I couldn't trust that they'll still be there when I
         | open my phone.
         | 
         | - Battery life. Oh my goodness, battery life.
         | 
         | - Device limits. I ran into scenarios where if I was signed
         | into Youtube on my phone and desktop and I started playing a
         | video, all of the other videos on every other device would stop
         | and I would get a message shaming me about account sharing or
         | something. This is a paid experience that's worse than just
         | using stock Youtube without paying anyone. Stock Youtube
         | doesn't have any device limits.
         | 
         | - Notifications, recommendation engines, blegh... I can _turn
         | off comments_ in NewPipe. I can turn off recommended videos
         | entirely.
         | 
         | - Patchy control over data usage. I never really felt like I
         | could trust the app not to start downloading things over a
         | mobile connection no matter what settings I checked.
         | 
         | - Ads in the app for Youtube Red, the thing that I was already
         | paying for. This kind of made me mad, I was paying to show
         | support for a non-advertising model, and Google instead kept
         | bugging me about exclusive Youtube Red content.
         | 
         | - No good queuing system without making lists (this may have
         | changed, I think the Youtube website supports queues at this
         | point, so maybe the app does now as well).
         | 
         | ----
         | 
         | Eventually I stopped paying for Youtube Red because I didn't
         | see what the point was and I couldn't figure out what I was
         | accomplishing. I wanted to signal to Youtube that I was willing
         | to pay for a better experience, but they weren't getting that
         | message and I didn't seem to be communicating what I wanted to
         | communicate. And since I wasn't using the official client at
         | that point, none of my subscriptions were going to the channels
         | I wanted to support, so I did the math and found out that
         | direct donations were a much more economical/impactful way for
         | me to support them. I was just donating money to Google for no
         | reason.
         | 
         | I'm willing to pay for services like Youtube if they were
         | willing to put in even the bare minimum of effort on this
         | stuff. But what am I paying for? The old Youtube Red app was
         | _worse_ than using Youtube in a browser, and considerably worse
         | than front-ends like NewPipe. I don 't think I'm being greedy
         | or unreasonable asking Youtube for a button that lets me turn
         | off video recommendations.
         | 
         | Maybe the service has gotten better now, I haven't checked. But
         | it doesn't sound like it has. The entire Youtube experience
         | feels needlessly adversarial. It's not about piracy[0], it's
         | not about consuming content for free. I spent a decent chunk of
         | time quite literally giving Google money for nothing; giving
         | them money even though I wasn't using their app. I am willing
         | to pay for the infrastructure and hosting that Youtube
         | provides.
         | 
         | I just want a good experience, and there's still no option for
         | me to pay Google for a _good_ Youtube experience. And giving
         | them money doesn 't seem to be incentivizing them to fix any of
         | it. It's really just embarrassing that a 3rd-party project
         | using an unofficial API is so much better than every native
         | client that Youtube is offering.
         | 
         | ----
         | 
         | [0]: Although to be clear, I do not believe that using NewPipe
         | is actually piracy under any legal definition.
        
         | jhallenworld wrote:
         | Why can't we read comments on other platforms like Roku? Always
         | I see a video on my TV and then wonder what the comments are,
         | so have to find the video on my phone or computer.
        
         | drcongo wrote:
         | I'm surprised to hear that the Android YouTube experience
         | sucks, I've long believed Google were deliberately making the
         | iOS YouTube experience as awful as possible as some kind of
         | lure to Android. The gripes list for iOS, browser or app, would
         | well exceed the character count for a HN comment.
        
           | spookthesunset wrote:
           | All the apps, including the "TV device" (Roku, Apple TV) apps
           | seem to be kept fairly in sync. This wasn't always the case
           | but as of a few years ago, seems to hold true.
        
       | Orionos wrote:
       | Anybody using / looking for a heavy client (a desktop app) for
       | Youtube? I'm currently working on that in C++ (Qt). For now it's
       | just small window presenting a searchbar, the list of search
       | results and suggested videos. Playing the vid / playlist is done
       | by opening a separate vlc window.
        
         | kragen wrote:
         | Right now I'm using these kind of shitty shell scripts to
         | download the videos, ls to list them, and mpv on the command
         | line to play them. These use a file called "channels" which
         | contains YouTube channel URLs and space-separated tags, like
         | this:
         | https://www.youtube.com/channel/UClaEdLrmti779-tyovta8zw
         | grandpa amu hardware carpentry hacking
         | https://www.youtube.com/channel/UCLt9kIslIa1ffiM8A04KORw wm
         | levsha hardware hacking
         | 
         | Here are the scripts, slightly cleaned up:
         | 
         | snarf:                   #!/bin/sh         echo "snarf $@"
         | exec python3 ../youtube-dl -f '[height<769]' -i -r 1M -R 1 \
         | --sleep-interval "${wait-227}" --max-filesize
         | "${max_filesize-242m}" \          --no-mtime --playlist-end
         | ${n-5} --write-info-json --add-metadata \          --write-
         | description --write-thumbnail --write-auto-sub \
         | --write-sub --sub-lang en,es "$@"
         | 
         | snarf-tags:                   #!/bin/sh         exec ./snarf
         | $(./tag "$@" | shuf | sed 's,$,/videos,')
         | 
         | search:                   #!/bin/sh         exec ./snarf
         | ytsearch10:"$(echo "$@" | sed 's, ,+,g')"
         | 
         | resnarf:                   #!/bin/sh         : ${1?Usage: $0
         | foo.mp4.part}                  # example: garbage\ stuff\
         | -zKLMCO0-How.mp4.part                  for x in "$@"; do
         | x=$(echo "$x" | perl -ne 'm,(.{11})\.mp4,; print $1')
         | ./snarf "https://youtu.be/$x"         done
         | 
         | tag:                   #!/usr/bin/env python3         import
         | sys                  def match(args, line):             return
         | (not any('-' + word in args for word in line)
         | and not any(word not in line for word in args if word[0] !=
         | '-'))                  def main(args, input, output):
         | for line in input:                 words = line.split()
         | if match(args, words):
         | output.write(words[0] + "\n")                  if __name__ ==
         | '__main__':             main(sys.argv[1:], open('channels'),
         | sys.stdout)
         | 
         | So my searchbar is "wait=3 ./search japanese hornets" or
         | "./search electrochemical machining advances", and periodically
         | I run "./snarf-tags" to download any new videos over the next
         | few hours, which I can then see with "ls -lart ./*4". And if I
         | want to know where some great search-result video came from so
         | I can add it to the list of channels, why, that's "jq -r
         | .uploader_url Romanes\ Eunt\ Domus\ EXPLAINED\ _\ Monty\
         | Python\'s\ Life\ of\ Brian\ *\ Fun\ with\ Latin-
         | UfH6gjxTTgE.info.json", which sounds horrible but it's really
         | more like ^Rjq^A M-f M-f M-f ^K Ro<TAB>.
         | 
         | Suggested videos and thumbnail display, not to mention buttons
         | to press for the above things, would be a welcome addition, but
         | thumbnail display is difficult in the terminal. Also, it would
         | be pretty great to have a way to not redownload a video after I
         | deleted it, and for youtube-dl to not wait the 227 seconds
         | before deciding not to download a video because it's a four-
         | hour snoozefest recorded livestream.
        
           | scns wrote:
           | Great. My first thought was: The inverse of (dual to?) the
           | infamous Dropbox comment
        
             | kragen wrote:
             | Haha! Yeah, I definitely don't mean to imply that the UX of
             | these scripts couldn't be improved, just that these are
             | some bits of functionality that I've found useful, and some
             | very simple ways I've found to implement them that
             | nevertheless worked pretty well. And, maybe as importantly,
             | it may not be hard to have better UX than 25 lines of shell
             | scripts, but it's even easier to have worse UX, so this is
             | kind of the minimum bar for acceptability.
        
               | scns wrote:
               | Yeah, there was zero implication about UX on my part
               | though. Instead of just dismissing it with a: "I can do
               | that in 30 lines of Python", you just delivered a
               | solution that works for you and can be built upon by
               | others. Good job, praiseworthy IMHO.
        
               | kragen wrote:
               | I think UX was precisely the way Dropbox won.
        
           | CGamesPlay wrote:
           | Thanks for this! I'm going to be rigging something like this
           | soon, and I have a lot of feature crossover with what you've
           | done here.
        
             | kragen wrote:
             | Sure! I hope it's helpful!
        
         | VortexDream wrote:
         | That seems interesting. I'd give that a try. I'm not satisfied
         | with any clients I've tried so far.
        
         | Nextgrid wrote:
         | There's already some competition in this space:
         | https://flavio.tordini.org/minitube
        
         | southerntofu wrote:
         | I think a lot of people are looking for that. This is
         | especially true for folks with lower-end hardware where
         | hardware decoding may be supported by the system but not (well)
         | by the browser, or at least the rest of the browser runtime
         | would use way too much resources.
         | 
         | NewPipe on Android is somewhat popular because it's much
         | lighter than other Youtube clients (browser included) and
         | enables features which Youtube official clients prevent on
         | purpose (audio-only, download). We don't have an equivalent to
         | that on the desktop. gtk-pipe-viewer [0] is close to that, but
         | is not widely available yet.
         | 
         | A problem you need to tackle when distributing a 3rd party
         | client for a centralized network is you have to deal with
         | constant micro-changes in the public-facing API, which the silo
         | does on purpose to break 3rd party clients. youtube-dl from
         | distro repos is almost unusable all the time because of that
         | except on rolling-release (most people use pip version
         | instead), and Newpipe had to make their own F-Droid repository
         | because f-droid.org vetting/build process is too slow for that
         | particular usecase. [1]
         | 
         | EDIT: If you're looking for solutions to distribute your
         | client, packaging for every distro out there is "hard" (better
         | leave that to distro maintainers, except for your favorite
         | distros of course) but there's a few distro-agnostic formats
         | that are very easy to automate builds for: 0install, AppImage,
         | Flatpak, guix, nix. The first two are statically linked (and
         | PGP signed) and 0install is even compatible with Mac and
         | Windows build (and any other platform, theoretically). Flatpaks
         | are more Linux specific (some *BSD support in progress) and
         | require a bit more setup to interface with other parts of the
         | system escaping the sandbox (eg. for VAAPI), see the Portals
         | mechanism. nix/guix are intended for reproducible builds: you
         | need to package your dependencies first so it's definitely
         | easier to get started if most of your dependency tree is
         | already packaged there.
         | 
         | All in all, supporting those 5 build systems should keep you
         | busy for a few days at the start of your project but will be a
         | huge win for portability and maintainability in the long run.
         | If your project's architecture is not too complex and the
         | dependencies are easy to package, some external contributors
         | (me?) could help with that.
         | 
         | Good luck on your project!
         | 
         | [0] https://github.com/trizen/pipe-viewer [1] As a user i'm
         | happy f-droid.org default repo goes to great length to ensure
         | quality of apps on there and that no antifeature are silently
         | introduced by updates, but i'm also happy apps with specific
         | needs for rapid upgrades like Newpipe can develop their own
         | repo, and a simple QRCode can help bootstrap the repository
         | entry + PGP key without having to mess around with repo
         | settings manually
        
           | Orionos wrote:
           | > I think a lot of people are looking for that. This is
           | especially true for folks with lower-end hardware where
           | hardware decoding may be supported by the system but not
           | (well) by the browser, or at least the rest of the browser
           | runtime would use way too much resources.
           | 
           | That's what I'm trying to archieve with a C++ client. I feel
           | like picking C++ with Qt is the best in terms of portability
           | and performances. As a Youtube binge watcher I feel like I'm
           | wasting resources by going through a browser. Honestly that's
           | still really basic. A few API calls for search and
           | recommended, and then delegate the core functionalities
           | (playing and downloading media) to vlc and youtube-dl (need
           | to switch to the new and maintained equivalent btw)
           | 
           | > If your project's architecture is not too complex and the
           | dependencies are easy to package, some external contributors
           | (me?) could help with that.
           | 
           | I plan on doing some cleanup and post an MVP on HN, I'll keep
           | you updated!
        
         | parmezan wrote:
         | Alternative yt desktop app is https://freetubeapp.io/
        
           | stragies wrote:
           | Or the native cross-plattform opensource Minitube from
           | https://flavio.tordini.org/minitube . Is already available on
           | most systems through the package manager.
        
       | sysadm1n wrote:
       | Does anyone know: Do tools like this bother the people who
       | created Youtube in such a way that they feel sort of defeated? Or
       | are tools like this welcomed. I don't imagine Invidious hurts
       | their bottom line that much. In the end: it's just geeks having
       | fun, right?
        
       | harpersealtako wrote:
       | Does it not work for livestreams? I can't watch any currently-
       | airing channel I follow on it.
        
       ___________________________________________________________________
       (page generated 2021-09-20 23:02 UTC)