Playing YouTube From The Command Line

Generally, one opens a web browser or an app to use YouTube. However, if you’re looking to just listen to the audio, you can actually do that right from the terminal. You just need Shellbeats from [lalo-space].

Shellbeats is primarily intended for playing music from YouTube, and is well equipped for this task. It allows searching YouTube directly from the terminal, as well as streaming tracks or entire playlists from the command line interface. You can also make and edit playlists from within the tool, and even download the whole lot as MP3s if so desired. It’s all keyboard-operated and nicely lightweight. The overall experience isn’t dissimilar from operating a simple LCD-based MP3 player from 20 years ago.

There’s plenty of other fun stuff you can do in the terminal, too, as we’ve explored previously. If you’re working on your own media player hacks, be sure to notify us on the tipsline!

17 thoughts on “Playing YouTube From The Command Line

  1. Additionally, if you only want to listen to a single URL, installing yt-dlp and mpv work very well. I wrote a bash function to make it even easier:

    ytmusic(){ # Stream the audio from a YouTube video
    echo
    echo “Connecting to YouTube and opening audio stream…”
    mpv –no-video “$1”
    echo
    }

    1. Why aren’t you using Firefox with uBlock Origin ad blocker? Kills ads dead. I never see ads on YouTube or most of the internet.

      People are always bitching about ads everywhere and I’m like “What ads? Oh, yeah. All the ones I never see.”

      It seems like people would rather complain than do something about it.

      1. uBlock Origin and a hosts file from Steven Black. On the odd occasion I do see an ad, it suprises me. Those ads are usually hard-coded into a site’s html. I’m one of those people who use an odd browser. Waterfox.

      2. Why are there ⬛⬛⬛⬛⬛⬛⬛⬛ people who don’t get that if everybody used adblock then they would find a way to disable adblock or block you if you had it. And why do you want every person to be the same?
        Try thinking just a little bit harder, take a few weeks off or something if it is an effort.

      3. Some of us don’t want to use Firefox. I use a browser that doesn’t even support plugins, because that’s my choice. I don’t want to be forced into someone else’s paradigm in order to not be swarmed with ads… so I do it my way: qutebrowser + invidious + blacklisting ads on my DNS server. Doing it on the head end and altering my habits makes more sense than relying on plugins. To me at least.

  2. I am a CLI newbie on macOS X. Please forget my CLI ignorance.

    I ran: brew install mpv yt-dlp

    And it seemed to install properly.

    What do I do next?

    I tried running shellbeats and I get this error:

    zsh: command not found: shellbeats

    I see these on the shellbeats github page (but I’m not sure how to run them properly):

    Build:

    make
    make install

      1. Have you updated to the latest version? I get those 403 forbdden errors now and then. Doing yt-dlp -U will update if needed and that usually fixes the problem. At least until YT tweaks something else.

    1. Have you looked at invidious? We switched to it exclusively in my household. Easy to spin up dockerized, big community and very active at bugfixes and the Google cat-and-mouse. Not for everyone I guess, but it has become indispensable here. Tube Archivist is pretty rad too.

  3. Have you updated recently? I get the 403 error occasionally. Doing yt-dlp -U will cause an update to happen if one is available. Once I get the latest version, it fixes the 403 problem, at least until YT does another tweak.

  4. I’ve just been using myt + fzf for my own hackery. But this is awesome. Going to package this up for Gentoo immediately. Motivations much like the shellbeats author: tiling WM exclusively (sway, for oh… eight years now) and I got tired of bloated junk/distractions.

Leave a Reply to Jeff MillerCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.