Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node Version License Platform

🎬 SQCDownloadVideo

一个干净优雅的短视频下载工具,粘贴即用。

支持 抖音、TikTok、YouTube、Bilibili、快手 等 1000+ 平台
自动提取混合文案中的链接,播放级画质保存


✨ 为什么选它

特性 说明
🧠 智能提取 直接粘贴抖音分享文案,自动识别并提取视频链接,无需手动清理
🎯 多引擎驱动 yt-dlp 覆盖 1000+ 平台;Playwright 真实浏览器专攻抖音/TikTok 反爬
🎨 清爽界面 响应式设计,移动端/桌面端体验一致,渐变色 + 毛玻璃质感
📥 流式下载 后端直传浏览器,不落盘,大文件无压力
🏷️ 无水印 抖音视频优先获取无水印版本,自动替换 watermark CDN
🔍 多清晰度 YouTube / Bilibili 支持选择不同分辨率,显示文件大小
🔒 隐私优先 本地运行,cookies 仅读取不传输

📸 界面

┌──────────────────────────────────────────┐
│         🎬 短视频下载                      │
│   粘贴分享文案或视频链接,自动识别并下载      │
│                                          │
│  ✅ 已就绪 (yt-dlp v2025.10.14)           │
│                                          │
│  ┌──────────────────────────────────┐    │
│  │ 粘贴抖音分享文案或链接...    [🔍 解析] │    │
│  └──────────────────────────────────┘    │
│  📎 识别链接:https://v.douyin.com/xxx   │
│                                          │
│  ┌──────────────────────────────────┐    │
│  │     [视频封面缩略图]  ⏱ 10:07      │    │
│  │  [抖音]                           │    │
│  │  一支五毛的冷门死股...             │    │
│  │  抖娱影视 · 1920x1080             │    │
│  │  清晰度:[最佳] [1080p] [720p]    │    │
│  │  [⬇ 下载视频]  文件大小约 106 MB  │    │
│  └──────────────────────────────────┘    │
└──────────────────────────────────────────┘

🚀 快速开始

前置要求

  • Node.js >= 16.0
  • Chrome 浏览器(系统自带即可,Playwright 利用它处理抖音)
  • Python 3 + yt-dlp(YouTube / Bilibili 等平台需要)

安装

# 1. 克隆仓库
git clone https://github.com/sunqichaoPHP/SQCDownloadVideo.git
cd SQCDownloadVideo

# 2. 安装 Node 依赖
npm install

# 3. 安装 yt-dlp(处理 YouTube、Bilibili 等)
pip3 install yt-dlp

# 4. 安装 Playwright 浏览器(可选,系统 Chrome 已够用)
npx playwright install chromium

启动

npm start

浏览器打开 http://localhost:3000 即可使用。


📖 使用说明

基础用法

  1. 复制视频链接(或直接复制抖音分享文案)
  2. 粘贴到输入框,工具会自动提取其中的 URL
  3. 点击 「解析视频」 获取视频信息
  4. 选择清晰度后点击 「下载视频」

下载抖音视频

抖音有较强的反爬机制,本工具使用 Playwright + 系统 Chrome 实现真实浏览器自动化,直接拦截 API 获取无水印视频地址。

步骤 操作
确保电脑安装了 Chrome 浏览器
打开 www.douyin.com 随便浏览一下(建立基础 cookies,无需登录)
回到工具页面,粘贴抖音分享文案,点击解析
解析成功后点击下载

支持平台

平台 引擎 备注
抖音 / TikTok Playwright 无水印、自动反爬
YouTube yt-dlp 多分辨率、字幕可选
Bilibili yt-dlp 支持 BV 号
快手 yt-dlp
Twitter / X yt-dlp
Instagram yt-dlp
... yt-dlp 1000+ 平台

🧱 技术架构

┌──────────────────────────────────────────────────┐
│                     Browser                        │
│              (HTML / CSS / Vanilla JS)             │
│                                                    │
│   粘贴链接 → 自动提取 URL → 解析 → 选择清晰度 → 下载  │
└──────────────────────┬───────────────────────────┘
                       │  HTTP API
┌──────────────────────▼───────────────────────────┐
│               Express Server (Node.js)             │
│                                                    │
│   ┌─────────────┐    ┌──────────────────────┐     │
│   │  yt-dlp 引擎  │    │  Playwright 引擎       │     │
│   │  (通用平台)    │    │  (抖音/TikTok 专用)     │     │
│   │              │    │                        │     │
│   │ • 视频信息解析 │    │ • 启动真实 Chrome      │     │
│   │ • 流式下载     │    │ • 拦截 API 响应        │     │
│   │ • 多清晰度选择 │    │ • JS 数据提取          │     │
│   │ • 1000+ 平台  │    │ • HTML 正则兜底        │     │
│   └─────────────┘    └──────────────────────┘     │
│                                                    │
│              Stream Pipeline → Browser             │
└──────────────────────────────────────────────────┘

项目结构

videotool/
├── server.js               # Express 服务,路由、平台识别、引擎调度
├── douyin-downloader.js    # Playwright 抖音专用下载器
├── package.json
├── downloads/              # 临时下载目录(yt-dlp 使用)
└── public/
    ├── index.html           # 前端页面
    ├── style.css            # 响应式样式
    └── main.js              # 交互逻辑

抖音解析策略

Playwright 引擎采用四层降级策略确保最大兼容性:

  1. API 拦截 — 监听 /aweme/v1/web/aweme/detail/ 响应,直接获取结构化数据(首选,信息最全)
  2. 页面 JS 数据 — 读取 RENDER_DATA__INITIAL_STATE__ 等全局变量
  3. 网络拦截 — 正则匹配通过 CDN 的视频文件 URL
  4. HTML 正则 — 从页面源码中匹配 playAddr 字段

⚙️ 配置

server.js 中可调整:

const PORT = 3000;                      // 服务端口

const USE_PLAYWRIGHT = ['douyin', 'tiktok'];  // 使用 Playwright 的平台列表

// yt-dlp 检测优先级(按顺序尝试)
const candidates = [
  { cmd: 'yt-dlp', args: [] },
  { cmd: 'python3', args: ['-m', 'yt_dlp'] },
  { cmd: 'python', args: ['-m', 'yt_dlp'] },
];

🔧 常见问题

Q: 抖音下载报 "Fresh cookies are needed"?

这是 yt-dlp 的错误。抖音已由 Playwright 引擎接管,不会走 yt-dlp。如果你遇到此错误,说明请求错误地走到了 yt-dlp 路径。请确认 URL 中包含 douyin.com

Q: Playwright 启动失败?

本工具配置为使用系统 Chrome(channel: 'chrome'),无需额外下载 Chromium。确保系统安装了 Chrome 浏览器即可。如需使用 Playwright 内置 Chromium:

npx playwright install chromium
Q: 下载速度慢?

下载速度取决于视频源 CDN 的带宽。工具本身采用直连流式传输,不做中转或限速。

Q: 支持 Docker 部署吗?

可以。需要注意 Docker 容器内需要安装 Chrome(用于 Playwright)和 yt-dlp。推荐使用带 GUI 的容器或配置 --no-sandbox


📄 License

MIT © 2025 sunqichaoPHP


如果这个项目对你有帮助,请给一个 ⭐ Star

About

短视频下载工具 - 支持抖音/TikTok/YouTube/B站等1000+平台,粘贴即用

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages