Skip to content
Tech News
← Back to articles

ytr: YouTube Radio for Emacs

read original more articles
Why This Matters

The introduction of ytr, a new YouTube radio package for Emacs, highlights ongoing innovation in integrating streaming media into customizable text editors. This development offers Emacs users a more interactive and visually appealing way to stream YouTube audio, expanding its functionality beyond traditional editing tasks. As a first iteration, ytr demonstrates the potential for further enhancements in user experience and multimedia capabilities within the Emacs ecosystem.

Key Takeaways

██ ██ ███████ ███ ██ ██████ ██████ ██ ██ ██ ███ ███ ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ████ ████ ███ █████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███████ ██ ████ ██████ ██████ ██ ██████ ██ ██

I've been a happy ready-player user for some time now. I consider the Emacs package fairly feature-complete, for my needs anyway. Well almost.

While I've successfully migrated most of my music-listening to offline playback, there are the odd times when I enjoy streaming YouTube audio. I've pondered extending ready-player for this use case, but its current approach is fairly file-driven. For starters, it uses dired as a core abstraction.

Before venturing on a major refactoring, without even knowing if an Emacs streaming flow would stick, I decided to build a new package. Coincidentally, this enables me to experiment with the package UX without being restricted by ready-player 's needs. And so that's what I did in my new YouTube radio package ytr.

ytr really is fairly experimental. I'm currently driving its development purely on current needs. Let's see where it goes. It borrows lots from ready-player , but its UX presents itself more as a widget. I'm kinda liking the experience. There isn't much to it: you add a channel URL, and its content metadata is automatically pulled and presented as a child frame. I've also sprinkled in some eye candy (animations), reminiscing about the Winamp days. Beware, these sweets require running on Emacs GUI.

ytr is powered by mpv and yt-dlp, the real streaming workhorses doing the heavy lifting.

ytr is available on GitHub if you're keen to check it out. Keep in mind this is a brand new package and a first iteration, so it may need some improvements. If you give it a try, I'd love to hear how you got on. I've only tested on macOS so far.