The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up yt-dlp and play the video through mpv.

It turns out, writing a Firefox extension is easy and tricking Firefox into launching yt-dlp isn’t much harder (though it does require some annoying configuration on the user’s end).

Anyway, if you’re a Linux user, feel free to try it out. I don’t know how much I’m going to pour into this, but as an exercise of “can this be done”, it was pretty good for a few hours on a Friday night.

  • demesisx@infosec.pub
    link
    fedilink
    English
    arrow-up
    29
    ·
    1 year ago

    Additional pro-tip: you can just launch mpv from the terminal using the YouTube url and it will open a new player.

  • MonkCanatella@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    11
    arrow-down
    1
    ·
    1 year ago

    This is sweet, this exact same idea has been kicking around my head for awhile but I’ve never taken the initiative.

    I did write a script (powershell lol), that uses yt-dlp to download all your subscription videos as they come in and sends a notification. Could easily be modified to work on linux and use ntfy or another notification service. ALso no need to scrape your subscriptions as it stays in sync with your currently subscribed channels.

    • Daniel Quinn@lemmy.caOP
      link
      fedilink
      English
      arrow-up
      13
      ·
      1 year ago

      Honestly, because I didn’t know (a) that ff2mpv even existed, or that (b) mpv could play YouTube URLs directly. So thanks! I learnt two things today :-)

      It was still a fun project though 'cause I learnt how to write a Firefox extension and get the browser to launch programs on-click, so not a waste of time!

  • zaknenou@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    1 year ago

    can you please share a video of how it looks like when implemented. I think it is already possible to watch videos using VLC ?

    • Telorand@reddthat.com
      link
      fedilink
      English
      arrow-up
      6
      ·
      1 year ago

      I’ve had a couple videos that wouldn’t load properly in VLC. Rare, but it happens. Alternatives are always welcome.

    • Daniel Quinn@lemmy.caOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      I don’t think I have it in me to put together a video, but I can describe it if you like.

      Once you install the extension and follow the setup instructions, you just go to a YouTube page. The extension adds an ugly button to the top-left of the page that says “bypass”. When you click it, Firefox launches yt-dlp [the URL you're at] -o - | mpv - which basically just downloads the video and streams the output through the mpv video player. So now you’re watching just the video, with no web page necessary.

    • Contend6248@feddit.de
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      1 year ago

      My best guess would be that the internal player of Firefox comes to play here.

      You can try opening any MP4 with Firefox

  • Morgikan@lemm.ee
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year ago

    I was curious how you implemented this as it’s pretty much the default YT bypass qutebrowser users use. Then I read the MIME type addition you did and had a good laugh. That’s clever. Always nice to see a fellow Go user, too.

    • Daniel Quinn@lemmy.caOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Is there another way to do this? This hack was the only way I could figure out how to get Firefox to invoke an external binary, but if there’s a more conventional way to do it, I’d like to know 'cause I have another more complicated project in need of a pattern much like this one.

      • Morgikan@lemm.ee
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        No, the way you did it is the only way I can think you can. Otherwise it opens up things to arbitrary code execution. I’m not exactly sure how qutebrowser gets away with it, but I know it’s built on QT so maybe it just isn’t running sandboxed or had some special method for calling external binaries/scripts. You might take a look at that project and see, but Firefox/qutebrowser is probably like comparing apples and oranges.

        • Daniel Quinn@lemmy.caOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          That’s actually very helpful, thanks. I’ve been working on another project to open certain URLs in specific browsers/profiles, and wanted to be sure that I wasn’t missing a more obvious design pattern. The project is here if you’re curious.