← ClaudeAtlas

douyin-video-downloadlisted

解析抖音分享链接,下载无水印视频和图集。当用户提供抖音分享链接(v.douyin.com、www.iesdouyin.com、www.douyin.com)时,通过本机浏览器已登录会话(CDP)提取真实视频地址并下载。支持视频和图集两种内容类型。
3378925604-a11y/douyin-video-distiller · ★ 3 · Code & Development · score 76
Install: claude install-skill 3378925604-a11y/douyin-video-distiller
# 抖音视频下载 解析抖音分享链接 → 下载无水印视频 / 图集。**唯一可行路径是下面的 CDP 登录态提取法**——抖音 2025 年中起对纯 HTTP 解析全面上反爬,任何"直接请求页面拿 `_ROUTER_DATA`"或"yt-dlp + cookie"的做法都会失败或拿到壳页,不要浪费时间尝试。 ## 前置条件 - 用户电脑上 Edge 或 Chrome **网页版抖音(www.douyin.com)处于登录状态** - 本机有 Python(含 `websockets` 库)、curl、ffmpeg(图集/Live Photo 不需要 ffmpeg) - 需要关闭现有浏览器进程(会向用户说明后再执行);不绕过验证码、登录墙或风控,只使用用户自己的已登录会话 ## 执行流程(CDP 登录态提取法,已验证) 1. **解析短链**:`https://v.douyin.com/xxx/` 用 **GET**(HEAD 会 404)跟随重定向,拿到 `www.douyin.com/video/<id>` 或图集地址。 2. **强杀浏览器进程**(Edge 为例:`Stop-Process -Name msedge -Force`),否则调试参数不生效。 3. **带调试端口重启并打开目标页**(端口避开常被屏蔽的 9222,用 9333;参数含空格时不要带 `--user-data-dir`): ``` msedge.exe --remote-debugging-port=9333 --remote-allow-origins=* "https://www.douyin.com/video/<id>" ``` ⚠️ **Chromium/Edge 136+ 起禁止在默认 user-data-dir 上开调试端口**(参数会被静默忽略)。绕过法(2026-09-21 同学机 Edge 153 验证):`mklink /J C:\edgeprof "%LOCALAPPDATA%\Microsoft\Edge\User Data"` 建一个**无空格 junction** 指向真实 profile,再带 `--user-data-dir=C:\edgeprof` 启动即可保留登录态;**收尾必须 `rmdir C:\edgeprof` 只删联接**,原 profile 完好。 4. 等 14~20 秒,访问 `http://127.0.0.1:9333/json` 拿 page target 的 `webSocketDebuggerUrl`。 5. CDP `Runtime.evaluate` 执行 `document.querySelector('video').currentSrc` → 得到 `douyinvod.com` 真实流地址。 6. 若 `currentSrc` 是 `blob:`(MSE 分段流):改用 CDP **Network 域**监听收集 `douyinvod.com` 的 media 请求(视频、音频是分离的两条流),分别下载后 `ffmpeg -c copy` 合并。 7. 下载时带浏览器 UA + `Referer: https://www.douyin.com/`;下完用 ffprobe 核对分辨率/时长/编码。 8. **收尾**:关闭调试实例并正常重启浏览器;把保存路径告知用户;不输出、不留存签名直��和 Cookie。**用了 junction 的,收尾必须 `rmdir