بنقرة واحدة
cloakbrowser-douyin-scraper
使用 CloakBrowser 绕过抖音反爬,获取真实视频 MP4 下载链接
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
使用 CloakBrowser 绕过抖音反爬,获取真实视频 MP4 下载链接
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Set up Alembic database migrations for FastAPI projects using async SQLAlchemy (asyncpg). Covers env.py configuration with async engine, autogenerate handling, greenfield vs brownfield migration strategies, and env var integration.
Wan2.2 FLF2V (First/Last Frame to Video) 管线 — 生成首尾帧之间的插值视频,支持电影级镜头过渡
Use CloakBrowser (anti-detection Chromium) to access protected Chinese web platforms (Douyin/抖音, etc.) and extract structured data — intercepting API responses, extracting video/media URLs, and downloading content from sites that block standard Playwright/browser automation.
Install and diagnose Playwright-based packages (Playwright, CloakBrowser, etc.) on Linux/WSL — handles externally-managed Python, system deps, proxy-based binary downloads, and runtime troubleshooting
Exploratory QA of web apps: find bugs, evidence, reports.
llama.cpp local GGUF inference + HF Hub model discovery.
| name | cloakbrowser-douyin-scraper |
| description | 使用 CloakBrowser 绕过抖音反爬,获取真实视频 MP4 下载链接 |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
source ~/venvs/cloak/bin/activate # Python venv, cloakbrowser 0.3.28
CloakBrowser 是一个 C++ 源码级修改指纹的 Chromium,reCAPTCHA v3 得分 0.9,可过 Cloudflare Turnstile。
from cloakbrowser import launch
browser = launch(headless=True)
page = browser.new_page()
page.set_viewport_size({"width": 1920, "height": 1080})
all_videos = []
def handle_response(response):
url = response.url
if '/aweme/v2/web/module/feed/' in url:
body = response.text()
data = json.loads(body)
for item in data.get('aweme_list', []):
video = item.get('video', {})
play_addr = video.get('play_addr', {})
url_list = play_addr.get('url_list', [])
mp4_url = [u for u in url_list if '.mp4' in u]
if mp4_url:
all_videos.append({
'desc': item.get('desc', '')[:100],
'author': item.get('author', {}).get('nickname', ''),
'mp4_url': mp4_url[0],
'cover': video.get('cover', {}).get('url_list', [''])[0],
'duration': item.get('duration', 0),
'digg_count': item.get('statistics', {}).get('digg_count', 0),
})
page.on("response", handle_response)
page.goto("https://www.douyin.com/", timeout=30000, wait_until="domcontentloaded")
time.sleep(5)
# 滚动加载更多
for i in range(3):
page.evaluate(f"window.scrollTo(0, {i * 800})")
time.sleep(3)
req = urllib.request.Request(mp4_url, headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Referer': 'https://www.douyin.com/',
})
with urllib.request.urlopen(req, timeout=30) as resp:
with open(output_path, 'wb') as f:
f.write(resp.read())
| 端点 | 用途 |
|---|---|
/aweme/v2/web/module/feed/ | 推荐 Feed(count=20, 滚动翻页) |
/aweme/v1/web/aweme/detail/ | 单视频详情(参数: aweme_id) |
/aweme/v1/web/hot/search/list/ | 热搜榜单 |
/aweme/v2/web/module/feed/ (参数 module_id=3003101)/search/{keyword})在 CloakBrowser 中会触发 EPIPE 崩溃(Node.js write EPIPE,原因可能是 WebSocket/SSE 连接被切断)Douyin 搜索 API (/aweme/v1/web/general/search/single/) 受到严格的 X-Bogus/A-Bogus 签名保护:
sessionid、sid_guard、passport_csrf_token),未签名的请求也会返回 verify_check 验证码--search 功能同样受此限制(内部有签名逻辑但仍可能失败)立即下载: 视频 URL 包含 x-expires 参数,有时效性(通常几分钟到几小时)
文件大小: 典型视频 40-400MB,大文件(>100MB)GitHub 无法接受
Referer Headers: 下载时必须带 Referer: https://www.douyin.com/
Proxy 冲突: 在 WSL 环境下 no_proxy='*' 会阻止 CloakBrowser 访问网络,删除 proxy 环境变量即可
视频 URL 有时效性签名(URL 中的 x-expires 参数),需即时下载
下载时需带 Referer 头 https://www.douyin.com/
首次启动 CloakBrowser 会自动下载 ~200MB Chromium 二进制到 ~/.cache/cloakbrowser/
视频可能很大(10-100MB+),建议转码压缩后再用于 demo