一个是粘贴链接下载:别人发你一条分享文案,整段粘进去,点一下,歌就下好了。 它给你的是分享页那一档普通音质,大概一百多 k。歌本身谁都能下,但会员的无损拿不到。
另一个是从我的音乐里选:把你听过的歌全部列出来,想下哪几首就勾哪几首,下载时弹个窗让你挑音质。 会员的无损档就在这儿,可以批量下。
所以想听个响、下首普通音质的歌,用第一个;想要无损、要下一堆,用第二个。
大多数情况有个前提:这首歌你在电脑上的汽水音乐里听过。响两三秒就够,不用听完。 原因很简单——工具是去客户端的缓存里找地址的,没听过就没地址。
例外是下面那个"自己抓一条长链接"的走法:那条链接是你在浏览器里直接从分享页扒出来的, 不经过缓存,所以没听过的歌也能下。想省事就用缓存,想下没听过的歌就抓长链接。
走缓存那条路(自动找歌 / 我的音乐)的话,第一次要告诉它你的歌在哪儿。在资源管理器地址栏粘这一行,回车:
%APPDATA%\SodaMusic\LunaCacheV2
里面有个 entries.db,两三兆。把文件选给它,选一次就够了,浏览器会记住。
下次打开页面,歌单直接就在,不用再选。
记得它记的是你选文件那一刻的内容。之后又听了新歌,就在页面上点一下"重新选择缓存文件",再选一次同一个文件,新的歌就进来了。
别人发你这样的东西,整段复制,不要只复制网址:
粘进输入框,点"下载这首歌"。它从文案里认出歌名,去你的缓存里找同一首歌,找到了就开始下, 下完直接存到你电脑的下载目录里。
这个功能不让你选音质,因为它是给"我就想赶紧拿到这首歌"用的,直接按普通音质那一档给你(一百多 k), 不会给会员那档。要挑音质请用功能二。
如果它说"地址不在缓存里",说明这首歌没在客户端放过。两条路:回汽水音乐点开这首歌响几秒, 再回来点一次"重新选择缓存文件";或者按下一节的办法自己抓一条长链接,直接粘到下面的框里。
上面那种是"粘链接 → 工具去缓存里找歌",所以要求你先听过。 如果你要下的歌根本没在客户端放过,或者你就是不想翻缓存,可以自己抓一条长链接, 这条路不需要缓存、不需要听过,只要那条链接还活着。
操作全在浏览器里,四步:
F12(或 Ctrl+Shift+I)打开开发者工具,点顶部的「网络 / Network」标签。douyinvod,然后点页面上的播放按钮,让歌响两三秒。v5-…douyinvod.com 开头的请求,一般就是最长的那条。点它,
右边选「标头 / Headers」,在「常规 / General」里找到「请求网址 / Request URL」,
把那一整条复制下来。
不想在面板里一层层筛的话,用控制台一行命令:在分享页按 F12 切到「控制台 / Console」,
粘贴 copy((document.querySelector('audio,video')||{}).currentSrc||performance.getEntriesByType('resource').map(e=>e.name).filter(n=>/douyinvod\.com\/.*\/video\/tos\//.test(n)).pop()||'没找到地址,先点一下播放再运行')
回车,地址就直接进剪贴板了。第一次粘可能被拦,先输入 allow pasting 回车再粘。
代码在 粘贴链接下载 页面「已经拿到长链接」下面是现成的,点一下就能复制。
注意别用书签小工具(bookmarklet)那套:抖音分享页带 CSP,javascript: 书签会被浏览器直接拦掉,点了没反应。
拿到之后有两种用法。一是直接粘到浏览器地址栏回车,浏览器会播放,右键"视频另存为"就能存下来。 二是粘回本工具 粘贴链接下载 页面下面那个"已经拿到长链接"的框里, 点一下就存成 m4a。如果那条是加密的,工具会用缓存里对应的密钥帮你解开;缓存里没有它会直接告诉你。
几个要注意的:
mp4 试试;
或者点一下面板左上角的清除按钮,然后重新播放一次。打开以后是一张表,每行一首歌,左边勾选框。默认全部勾上了,不想要的把勾去掉,或者先点"清空"再一个个挑。
表里三样信息值得看一眼:
勾完点右下角"下载",会弹一个窗让你选音质,三个选项:
| 最高音质 | 有无损就下无损,没有就下最好的。不知选哪个就选这个。 |
| 只要无损 | 只下 FLAC,没有无损源的歌自动跳过,不给你凑数。 |
| 省空间 | 下 128k 左右的有损版,一首三五兆,塞手机里听够了。 |
弹窗上会顺便算出这一批大概多少兆,你可以据此决定要不要换"省空间"。
这是最容易误会成工具坏了的地方。歌的下载地址是带时效签名的,一般几个小时就作废。 你三天前听过的歌,今天再下就是这个结果。
解决很简单:回汽水音乐把这首歌重新点开响两秒,再回页面点"重新选择缓存文件"导一次,链接就刷新了。 这不是 bug,是平台故意的。
有人会想,那我把分享链接给它,让它自己去那个页面拿不就行了。做不到,这点得说清楚。
汽水的分享页是个空壳,真正的播放地址是页面里的脚本带着客户端签名去换回来的,这个签名得靠原生库算, 浏览器里没有。而且那个域名压根不给跨域许可,网页连它的内容都读不到。 所以纯前端做不了,谁家纯前端站都做不了。
现在这个"粘贴链接下载"是这么干的:从链接里认出歌名,去你已经缓存下来的歌里找同一首。 所以前提还是那句——先在客户端听过。不想听这一步,就走上面那个抓长链接的办法。
这个站是纯静态的(可以直接丢到 EdgeOne Pages 这类托管上),没有后端。 要在服务端跑一个浏览器去解析分享页,就得有一台常开的机器,那就不再是"托管一个静态站"了。 所以自动解析这一步省不掉:要么你在分享页点一下书签/按 F12,要么让客户端先缓存一份。
| 选了文件却说没有歌 | 选错文件了。要么不是 entries.db,要么还没在客户端听过歌。 |
| 找不到某首歌 | 缓存里没有它。去客户端点开响几秒,重新导一次缓存;或者按"自己抓一条长链接"那一节来做,不用缓存。 |
| 匹配到别的版本了 | 同名的现场版/翻唱版会被认错。缓存里有同名多份时优先用最近放过的那份;实在不对就改用长链接。 |
| 下到一半失败 | 链接过期了。重播那首歌,重新导入缓存,再下一次。 |
| 会不会上传我的文件 | 不会。整站没有上传代码,除了下载音频那一步,其他功能断网也能用。 |
| 能不能转成 mp3 | 不转。转码一定掉音质,这工具宁可给你原文件。要改格式自己用别的软件转。 |
| 手机上能用吗 | 能用,但得先把 entries.db 弄到手机上,而且手机只能一首一首弹保存框。 |
| 为什么下载没反应 | 看浏览器有没有拦弹窗/多文件下载,Chrome 和 Edge 第一次批量下载会问你"允许下载多个文件"。 |
整个站就几个静态文件,没有后端、没有数据库。传到任何静态托管都能跑,EdgeOne Pages、GitHub Pages、Vercel 都行, 具体写在目录里的 README。