ReClip 项目介绍
项目概述
ReClip 是一个自托管的开源视频和音频下载器,具有干净的 web UI 界面。它允许用户从 YouTube、TikTok、Instagram、Twitter/X 等 1000+ 网站粘贴链接,然后下载为 MP4 视频或提取为 MP3 音频。
核心功能
- 📹 广泛的网站支持:通过 yt-dlp 支持 1000+ 个网站
- 🎵 格式转换:支持 MP4 视频下载或 MP3 音频提取
- 📺 质量选择:提供质量/分辨率选择器
- 📥 批量下载:支持一次粘贴多个 URL
- 🔄 自动去重:自动处理重复的 URL
- 🎨 简洁界面:响应式 UI,无框架,无构建步骤
- 🐍 轻量后端:单 Python 文件(约 150 行)
技术栈
- 后端:Python + Flask
- 前端:原生 HTML/CSS/JS
- 下载引擎:yt-dlp + ffmpeg
- 依赖:仅 2 个(Flask, yt-dlp)
部署方式
方法一:直接运行
# 安装依赖
brew install yt-dlp ffmpeg # macOS
# 或
apt install ffmpeg && pip install yt-dlp # Linux
# 克隆项目
git clone https://github.com/averygan/reclip.git
cd reclip
# 运行
./reclip.sh
方法二:Docker 部署
docker build -t reclip . && docker run -p 8899:8899 reclip
是否支持 EXE?
目前不支持 EXE 格式。ReClip 是一个基于 Python 的 web 应用,主要通过以下方式部署:
- Python 脚本直接运行
- Docker 容器部署
使用教程
基本使用步骤
- 粘贴链接:在输入框中粘贴一个或多个视频 URL
- 选择格式:选择 MP4(视频)或 MP3(音频)
- 获取信息:点击 Fetch 加载视频信息和缩略图
- 选择质量:如果有多个质量选项,选择合适的分辨率
- 开始下载:点击单个视频的 Download 或 Download All 下载所有视频
支持的网站
ReClip 支持 yt-dlp 支持的所有网站,包括:
- YouTube、TikTok、Instagram、Twitter/X
- Reddit、Facebook、Vimeo、Twitch
- Dailymotion、SoundCloud、Loom、Streamable
- Pinterest、Tumblr、Threads、LinkedIn
- 以及更多…
项目演示
界面预览
操作截图
监控方案
为了显示最近大版本更新时间并动态更新展示,我们可以实现以下监控方案:
方案一:GitHub API 监控
import requests
import json
import datetime
def check_reclip_updates():
url = "https://api.github.com/repos/averygan/reclip/commits"
response = requests.get(url)
if response.status_code == 200:
commits = response.json()
if commits:
latest_commit = commits[0]
commit_date = latest_commit['commit']['committer']['date']
commit_message = latest_commit['commit']['message']
commit_sha = latest_commit['sha']
return {
'last_updated': commit_date,
'commit_message': commit_message,
'commit_sha': commit_sha
}
return None
# 保存到文件
updates = check_reclip_updates()
if updates:
with open('reclip_updates.json', 'w') as f:
json.dump(updates, f, indent=2)
print(f"Last updated: {updates['last_updated']}")
print(f"Message: {updates['commit_message']}")
方案二:定时扫描(每周一次)
创建一个 cron 任务:
# 每周一凌晨 3 点运行
0 3 * * 1 cd /path/to/reclip && python check_updates.py
前端展示
在前端页面添加更新信息展示:
<div id="update-info" class="mb-4 rounded-lg bg-blue-50 p-4">
<h3 class="text-lg font-semibold">项目更新信息</h3>
<p class="text-sm text-gray-600">
最后更新: <span id="last-updated">加载中...</span>
</p>
<p class="text-sm text-gray-600">
更新内容: <span id="update-message">加载中...</span>
</p>
</div>
<script>
// 加载更新信息
fetch("/api/reclip-updates")
.then(response => response.json())
.then(data => {
if (data) {
document.getElementById("last-updated").textContent = new Date(
data.last_updated
).toLocaleString();
document.getElementById("update-message").textContent =
data.commit_message;
}
})
.catch(error => console.error("Error loading updates:", error));
</script>
总结
ReClip 是一个轻量级、功能强大的视频音频下载工具,具有以下优势:
- 易于部署:支持直接运行或 Docker 部署
- 功能丰富:支持多种网站、格式转换、批量下载
- 界面简洁:响应式设计,使用体验良好
- 轻量高效:单文件后端,依赖少
项目链接
免责声明
此工具仅用于个人使用。请尊重版权法律和您下载内容的平台服务条款。开发者不对任何滥用此工具的行为负责。
许可证
ReClip 使用 MIT 许可证