ytr: YouTube radio for Emacs
摘要
作者基于已有的 Emacs 音乐播放器 ready-player 的经验,尝试做一个更偏流媒体场景的工具 ytr,用来处理偶尔想听 YouTube 音频的需求。该插件采用更像 widget 的交互方式:用户只需添加 YouTube 频道 URL,就会自动抓取内容元数据,并以 child frame 形式展示。播放层依赖 mpv 和 yt-dlp 完成实际流媒体与解析工作。 整体仍处于早期实验阶段,UI 中加入了一些动画效果作为 “Winamp 风格” 的视觉元素,但仅在 Emacs GUI 环境下可用。目前主要基于作者自身需求驱动开发,已开源在 GitHub,并主要在 macOS 上测试。
荐读理由
内容仅是作者分享实验性 Emacs 包 ytr 的个人构建经历与使用方式,未提供任何可迁移到 AI 工程项目的工具、架构或方法,也没有技术变化、创业信号或判断依据。
原文
██ ██ ███████ ███ ██ ██████ ██████ ██ ██ ██ ███ ███
██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ████ ████
███ █████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
██ ██ ███████ ██ ████ ██████ ██████ ██ ██████ ██ ██
June 23, 2026
ytr: YouTube radio for Emacs
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.
Make it sustainable, sponsor the effort
Liking ytr? Would like to see it evolve? Consider sponsoring the effort.
powered by LMNO.lol
这条对你有帮助吗?