惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
The GitHub Blog
The GitHub Blog
小众软件
小众软件
美团技术团队
博客园 - 司徒正美
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
罗磊的独立博客
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Docker
J
Java Code Geeks
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
V
V2EX
C
Check Point Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MyScale Blog
MyScale Blog

est の 输入 输出和出入

Doherty 多尔蒂阈值 海南之行后记 The httpx 1.0 situation Mimocode/Opencode 的 Responses API 支持 git fetch 实现断点续传 继续搓英汉双解词典v3 邮箱生态调研2026 “畜牲” 飞书并入豆包,文档是否减少? 从菲尔兹奖谈「包养」 iosevka字体让中文 ASCII diagram 图表对齐 为什么 Github OAuth 故意拦截 CORS gitweets改版,复刻微信「朋友圈」 MiMoCode 干完活儿发通知 写作能力和 locate cost grep vs sqlite 谁更适合微信聊天记录? [AI] curl -NT. 导致100% CPU原因 或许「数羊」真是个有效的入睡法 唯物主义「天命」论 我的 Vibe Coding 最佳实践——ADR文档 MacOS 快速插入当前时间 locate cost 基于 git 的零拷贝静态web服务器 AI和柜台费 Sutton 论 discovery Elon Musk 五步工作法 不修改nginx接收websocket AI 硬伤 理解LLM的范式——它就是个差分机? 路径依赖
Playlet:DLNA听歌神器 免安装app播放NAS里的歌
est · 2026-05-30 · via est の 输入 输出和出入

家里有个小 NAS 。里面存了一些歌。一半是用 NAS 自带的 app 听,一半是。。。SMB 共享打开听

虽然 NAS 也提供 DLNA ,一直以来找不到趁手 app ,要么收费,要么 bug 多,要么不能多端。

13年前我也想基于 chrome.socket 做个 Chrome App 弄个类似的。结果这破玩意实现有问题,多连接会导致 hang。最后2020年Chromium决定杀死 Chrome Apps

周六的时候,实在无聊,决定又开始搓轮子。在思考 SSDP/UPnP ,native UI, electron,命令行这些选型的时候,突然想到,DLNA服本来就要提供一个http,自己再造个 http 客户端去通信,岂不是多此一举?只要依托它,解决跨域……等等,用个 bookmarklet 不就行了?当页调用 fetch() ,走 SOAP 协议,完美。

所以这就有了,网页版听歌的。不需要安装 app ,只需要一个浏览器书签

https://est.github.io/playlet/

也需要你对网络、DLNA 的亿点点知识。比如你得自己想办法找出 DLNA 的 IP 和端口

使用方法:

  1. 把这个网址加到浏览器书签

        javascript:import("https://est.github.io/playlet/loader.js")
    
  2. 打开 DLNA 服务器的网页

  3. 点击第一步加的书签(如果找不到书签栏,右上角三个点菜单 -> 收藏 可以切换)

自测兼容 NAS 的 MiniDLNA 。chrome ,手机浏览器和 webview 都可以播放。

当年嵌入个 <script> 写法多复杂,createElement又这那的;现在直接 import() 搞定。简洁明了,还不会重复加载。

最后是个 50KB 左右的单体 js。实现了播放、搜索等核心功能+UI。

给本地测试环境动了个小心思,利用 iframe 去模拟 bookmarklet 注入。还学习到 <audio crossorigin="anonymous"> 居然主动去检查跨域CORS头导致加载失败,去掉 crossorigin 就行。AI嘴硬不给去掉,服了。

这下随时随地打开浏览器就能听歌了。除了收藏的一些古典CD是 .cue 分段的没法播放。感觉需要去电脑上硬切割一下了。

接下来想把歌词什么的整理好。不知道有没有类似 opensubtitles 之类的服务。

最后想起来,miniDLNA为啥不直接把这一坨JS内置了 😂 可能当年那个条件没厂家愿意去js手搓一套DLNA协议+播放界面吧。甚至浏览器对常见音频格式都不怎么支持