下划线音乐播放器
The Underscore Music Player

原始链接: https://kottke.org/25/10/the-underscore-music-player

Underscore 是一个自建的、极简的网页音乐播放器,旨在解决一个个人问题:音乐选择疲劳。它的创建者是一位经常在多个平台(Spotify、YouTube、Soundcloud 等)收听器乐的爱好者,发现自己陷入了重复的听歌习惯。 Underscore 允许用户将来自各种服务的音乐链接添加到个人收藏中。刷新页面会随机播放该收藏中的一首曲目,鼓励用户发现被遗忘的喜爱歌曲。它刻意保持简单——没有 API、自动同步或自动播放——需要在每首歌播放后手动刷新。 虽然最初是为个人使用而构建,拥有近 300 首曲目的收藏,但创建者已将其开放给 kottke.org 的注册用户来创建他们自己的收藏。它最适合较长的曲目、专辑和播放列表,并附带一个有趣的免责声明:这是一个个人项目,请用户谨慎使用!

一位Hacker News用户联系了Underscore Music Player的开发者,提出合作机会。这位用户是一位残疾退伍军人,他开发了“plasas.com”,一个基于浏览器的媒体播放器,使用HTML、CSS、jQuery/JavaScript、PHP和其他基础Web技术构建——有意避免使用React或Vue.js等现代框架。 Plasas.com通过允许用户从YouTube、Spotify和X/Twitter等多个平台创建统一的播放列表来解决现有播放器的不足,其功能包括自动同步、可下载的播放列表和专注模式。它还提供实时搜索功能。 开发者正在寻求反馈,并考虑在未来开发中使用Erlang/OTP。有趣的是,Underscore的开发者Jason Kottke由于认为Hacker News存在政治倾向,并不积极参与其中。该帖子还提到Y Combinator 2026冬季项目的申请窗口正在开放。
相关文章

原文

For the past several months, I’ve been using a web-based music player I built called Underscore. It’s playing music for me right now. I recently revamped & improved it and thought it was time to show it off. Here’s a screenshot:

a screenshot of a music player with almost no interface but with a very bright patterned background

Ok, let me explain. I listen to music all day while I’m working, favoring music without words — electronic, classical, soundtracks, ambient, nature sounds, that sort of thing. I listen to whole albums, long mixes, and playlists across several services, including Spotify, YouTube, and Soundcloud. It was becoming a pain in my ass trying to pick something to listen to while working; I’d have to scroll through playlists on all these different services and generally I’d end up listening to the same stuff over and over again, getting sick of it, getting distracted by choosing music, missing some gems buried deep in a list of saved albums, etc.

So, pair programming with Claude, I built Underscore, a “home-cooked meal” app that’s both simple and opinionated. Here’s how it works. You can add links to music from Spotify, YouTube, Soundcloud, Bandcamp, and Apple Music to it — just paste their share URLs in. Reloading the page gives you a random piece of music from your collection. You can see a list of the songs, videos, playlists, and albums in your collection and can hide them if you want. That’s it. That’s all it does.

There’s no APIs or authentication or auto-synching playlists. The music is played through embedded players and if it lands on something from Spotify, Apple Music, or Bandcamp, you’re gonna have to click the play button in the embedded player (Soundcloud and YT videos should play automatically (but don’t always for whatever reason)). When your current selection ends, the new random thing doesn’t automatically play…you need to refresh the page.

It’s not ideal, having it be a little bit manual and janky in this way. But oh boy, am I loving this thing. It took me awhile to get everything into the system, but I’ve got almost 300 resources in my collection now — probably 300-400 hours of music all told — and I listen to it all day while working. I’m listening to stuff from deep in the archives, albums and playlists I just wouldn’t have thought to play, when strapped for time in the rush to get to work. When something new comes along, like NIN’s Tron: Ares soundtrack, I add it in there. I don’t get distracted…I just get good music for flow/coding/writing all the live-long day.

The background animation was adapted and extended from one of the examples in Rick Rubin’s The Way of Code — there are a bunch of different patterns and colors that it cycles through. I’m kinda proud of the way the media embeds fade into 1-bit images so you can see the background behind them when they’re playing…dorking around with CSS & web design is still super fun.

And but so anyway, I built Underscore for myself, to scratch an itch, but recently thought that it would be relatively easy to add other users to it. So, if you’re a logged-in member of kottke.org, you can build your own collection and play it with Underscore; just head right this way. If you’re not a KDO member, you can still check it out…but the only thing it does is play my music collection (which has some good stuff in it IMO). Fair warning: aside from this post, there is no onboarding. You may be confused as to how it works. But it’s simple enough that you quickly figure it out. Due to lack of auto-shuffle, it’s not worth using if you’re adding stuff that’s under ~30 minutes in length — Underscore is for albums, long tracks, playlists, etc.1 Caveat emptor. You break it, you buy it. Etc. Etc. If you try it out, let me know what you think in the comments below. Suggestions or improvements welcome.

联系我们 contact @ memedata.com