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

推荐订阅源

月光博客
月光博客
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
MyScale Blog
MyScale Blog
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
MongoDB | Blog
MongoDB | Blog
I
InfoQ
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security

分享创造

分享 KCase 脑图测试用例生成平台(AI 辅助生成测试用例) 标签页囤积症自救:写了个插件 TabRack,主打快速检索、自动分类和 AI 摘要 [file-preview]一个比较全面的在线文件预览组件库-支持 react 和 vue 撸了个 iOS 小应用[极简水印相机],直接免费 做了一个 V2EX Skill 写了个 iOS 打码 App「遮鸭 Maskduck」,纯离线免费 35 岁前端,裁员失业后,我花 1 个月做了个 AI 生图网站 亲身经历猫咪急症,我做了一款猫狗疼痛检测工具,希望能救你家毛孩一命 如何用 AI 做比较酷炫的落地页? 求真!最近 AI 生图的能力强到可怕 开源一个查看 k8s 的菜单栏工具-kubebar Packpour:我做了个专门给 App Store Connect 填多语言元数据的小工具 面对 140 年一遇的超级厄尔尼诺,我做了个全球监测小站 做了一个自动翻译的 Hacker News 客户端 做了一个 AI 头像生成器,可以免费生成 2 次 [送码 50 个] 自己手搓了个高颜值的倒数日 App——拾光机,求 V 友们指点 一个将苹果健康 APP 数据导出的工具,然后把你的数据喂给 AI 分析 我做了一个叫「订阅斩」的 iOS App,专门对付那些悄悄扣钱的订阅 做了个草率的日麻互动漫画,听听反馈 喜欢自己洗车的朋友们,我用 ai 做了一款洗车小程序 -- 洗车志 感谢 V2EX 上各位 NAS🍆 和 Datahoarder 玩家的关注和真实反馈!作为个人开发者,能得到这么多硬核玩家们的讨论,我非常荣幸。 用 AI 开发熊孩子自律的小程序 用 OpenClaw 搭建个人运动助手 今天摸鱼给 NanaAI 也接入了 GPT-Image-2 [Video Companion]一个 chrome 插件,解决大多对视频操作的需求~欢迎使用提 bug AI 时代,做产品简单了,把产品推广出去却变的更难了~ bestskills.dev - Skills 精选和评测站点 免 ROOT 强力卸载安卓广告软件 一个 All In One 的运维工具,支持 SSH、数据库、Redis 管理 [开源] Codeg V0.10:专注于代码生成的多智能体 IDE(cc、codex、gemini、opencode……),新版本重构了工作区,飞一般的体验,支持桌面端、服务器部署
做了一个支持嗅探下载、YT-DLP 和在线音乐播放的桌面工具: X...
dreamusername · 2026-05-26 · via 分享创造

大家好,最近做了一个桌面媒体工具,叫 下蛋 / XiaDown,一款支持在线音乐的双引擎视频下载工具。

它是为内容创作者和重度素材用户做的。需要素材时,可以用 YT-DLP + 浏览器嗅探 两套下载能力保存视频、音频、字幕和封面;下载完成后可以继续转码、整理进资源库;平时工作时,它也可以作为一个桌面音乐播放器使用,支持本地音乐、YouTube Music 和 YouTube Live 。

项目地址:

目前支持 macOSWindows

为什么做这个工具

我自己经常遇到一个比较分散的工作流:

  • 找素材时,需要在不同站点之间保存视频、音频、封面、字幕。
  • 下载之后,经常还要把格式转成剪辑软件更好处理的版本。
  • 保存久了以后,又需要一个地方统一管理下载、转码、导入的文件。
  • 工作时又希望有一个不太打扰的音乐播放器,可以听 YouTube Music 、直播电台或者本地音乐。

这些事情单独看都有工具可以做,但组合起来会比较割裂:下载工具是一套,转码工具是一套,文件管理是一套,音乐播放器又是一套。

所以我做了 XiaDown ,希望它更像一个桌面上的媒体工作台:下载、转码、资源库、在线音乐和一些个人化配置放在一起,减少来回切换。

它适合谁

我觉得它比较适合这些场景:

  • 做视频、剪辑、运营、自媒体,需要经常整理视频、音频、字幕、封面等素材。
  • 希望下载完成后顺手转码,少开一个单独的 FFmpeg 命令或转码软件。
  • 需要一个本地资源库统一管理下载、转码和导入文件。
  • 工作时喜欢挂着 YouTube Music 、YouTube Live 或本地音乐。
  • 不想把 yt-dlp 、ffmpeg 、bun 等工具装进全局环境,希望应用自己维护依赖。

主要能力

1. 双引擎视频下载:YT-DLP + CDP 嗅探

XiaDown 里有两套下载能力。

第一套是 YT-DLP 下载。普通视频链接可以直接粘贴解析,保存视频、音频、字幕和封面。对于 YouTube 、哔哩哔哩等常见平台,它会尽量走更稳定的 YT-DLP 流程。

第二套是 基于 CDP 的浏览器嗅探下载。有些网页的资源并不会直接出现在静态链接里,可能是动态加载的,或者需要真实浏览器会话才能看到。这个时候可以启动嗅探模式,让 XiaDown 观察浏览器里出现的视频、音频、直播流、清单、图片、字幕、API 响应等资源,再把可下载的内容整理出来。

平台覆盖上,YT-DLP 这一侧主要面向 YouTube 、哔哩哔哩等常见在线视频站点,也可以跟随 yt-dlp 支持更多站点;嗅探这一侧更适合动态加载、结构复杂或者需要真实浏览器会话的网站,我平时主要用它处理 TikTok 、抖音、快手、小红书这类素材场景。

对于需要登录态的内容,应用支持通过连接配置保存 Cookies / Profile ,数据来自用户主动登录后的本地浏览器环境。

下载与转码任务

嗅探台捕获网页资源

2. 下载后继续转码

下载完成之后,很多素材还不能直接拿来用。比如编码不合适、分辨率过高、音频格式不方便、剪辑软件导入不顺手。

XiaDown 内置了基于 FFmpeg 的转码能力,支持两种方式:

  • 下载任务完成后自动进入转码。
  • 手动选择本地文件进行转码。

目前内置了常见的视频和音频预设,例如 H.264 、H.265 、VP9 、MP3 、AAC 、Opus 、FLAC 、WAV ,也支持原始尺寸、2160p 、1080p 、720p 、480p 等常见输出场景。

我把它定位在素材整理里最常见的那一段流程:下载完,顺手转成可用格式;专业转码软件里的复杂参数不会一开始全塞进来。

3. 多视图资源库

下载和转码多了之后,任务列表很快会变乱。所以 XiaDown 里做了资源库,分为任务视图和文件视图。

任务视图更适合看下载、转码的历史和状态;文件视图更适合直接管理最终生成的文件。资源库里可以统一管理下载文件、转码文件、字幕、封面和手动导入文件。

现在支持的操作包括:

  • 媒体预览。
  • 查看任务详情和文件详情。
  • 批量选择与删除。
  • 失败任务恢复。
  • 文件存在性检测。
  • 清理已经失效的记录。

资源库统一管理下载与转码内容

4. 桌面音乐播放器

除了下载和转码,XiaDown 也做了桌面音乐播放能力。

这一块主要有三部分:

  • 本地音乐播放:自动索引资源库里的音频文件,支持播放队列、封面、同步歌词、东亚罗马音/拼音歌词、均衡器和频谱可视化。这里补充一下,均衡器和频谱可视化目前只支持 macOS 。
  • YouTube Music:支持账号连接、歌曲/艺人/歌单搜索、首页推荐、歌单库、关注艺人、喜欢的音乐、播放队列和歌词,也做了广告数据清理,尽量减少播放时被广告打断。
  • YouTube Live:支持自己添加 Live 分组和频道,可以看直播状态,播放直播电台,也可以直接查看直播视频。

我把音乐播放放进这个工具里,是因为很多内容创作者的工作状态其实是“找素材 + 整理素材 + 听点东西”。它不一定是核心生产能力,但作为一个长期挂在桌面的工具,有播放器会自然很多。

YouTube Music 桌面播放

YouTube Live 直播视频查看

一些我比较在意的设计点

依赖自动管理,不污染全局环境

XiaDown 依赖 yt-dlp 、ffmpeg 、bun 等工具,但我不希望用户为了用一个桌面应用,先去配置一堆命令行环境。

所以应用里做了依赖自动管理:安装、校验、升级都由应用处理,工具路径也由应用独立维护,不依赖用户机器上的全局命令,也尽量不影响用户原本的开发环境。

依赖工具管理

Cookies / Profile 与日常浏览器隔离

下载工具一旦涉及登录态,就很容易让人担心隐私和账号安全。

XiaDown 的做法是把连接配置独立出来:通过 CDP 调用本机浏览器能力,并持久化独立的 Profiles 和 Cookies 。数据来自用户主动登录,连接配置与日常浏览器使用场景相互隔离。

这样做的目标是:

  • 需要登录态时,不要求用户手动复制 Cookie 。
  • 不把所有平台账号混在一个全局环境里。
  • 用户可以按平台或场景管理连接配置。

连接配置与账号隔离

外观和 Codex Pets

这个部分偏个人喜好,但我自己很喜欢。

XiaDown 支持主题包、明暗/自动模式、强调色、字体、字号、侧边栏样式等外观设置。除此之外还内置了 Codex Pets Gallery ,可以导入在线或本地 Pets ,作为桌面陪伴元素。

软件如果要长期放在桌面上,我也希望它能慢慢变成用户自己的东西。

外观设置

Codex Pets Gallery

技术栈

项目主要技术栈:

  • 桌面:Go + Wails 3
  • 前端:React
  • 媒体处理:YT-DLP + FFmpeg
  • 浏览器连接:Chrome DevTools Protocol / chromedp
  • 本地存储:SQLite + Bun ORM
  • 前端工具链:Bun + Vite

几个实现点:

  • 嗅探下载基于 CDP ,关注浏览器网络请求、媒体资源、清单和 API 响应。
  • YT-DLP 下载支持连接配置里的 Cookies ,用来处理需要登录态的内容。
  • FFmpeg 转码既可以和下载任务联动,也可以手动处理本地文件。
  • 依赖工具由应用维护,减少对用户系统环境的要求。
  • 账号、Cookies 、Profile 通过连接配置隔离,避免和日常浏览器场景混在一起。

当前状态和后续计划

下蛋是一款我每天都会用到的工具,目前功能已经基本成型,后续我会长期维护,请大家放心。

在已有功能上,我会持续打磨细节与性能;新功能会考虑是否契合工具的范围,这个范围就是内容创作者会用到的桌面媒体工具。功能越做越多很容易发散,所以后面会尽量围绕下载、转码、资源管理和工作时的音乐播放这些核心场景来推进。

大家在使用中如果遇到什么问题,可以通过 GitHub Issue ,或者直接给我发邮件,我会跟进处理。

如果你对这个工具感兴趣,或者也有类似的素材管理工作流,欢迎在 V2EX 里交流建议。我也很想知道大家更希望它优先打磨哪一块能力。