ReClip API完整参考:从/api/info到/api/file的5个端点全文档

📅 发布时间:2026/9/16 14:56:36
ReClip API完整参考:从/api/info到/api/file的5个端点全文档
ReClip API完整参考从/api/info到/api/file的5个端点全文档【免费下载链接】reclipDownload videos from almost any website. Lightweight, self-hosted media downloader with a clean web UI.项目地址: https://gitcode.com/GitHub_Trending/rec/reclipReClip 是一款轻量、可自托管的视频下载器支持从 YouTube、TikTok、Instagram 等 1000 网站下载 MP4/MP3它的后端全部功能都由 5 个 REST API 端点驱动/api/info、/api/playlist、/api/download、/api/status和/api/file。本文是一份面向新手的 ReClip API 完整参考帮你快速搞懂每个端点的请求参数、返回格式和调用顺序。 ReClip 的5个API端点一览ReClip 后端只有一个约 150 行的 Python 文件 app.py5 个端点全部定义在其中端点方法作用源码位置/api/infoPOST解析视频链接返回标题、封面、时长、清晰度列表app.py#L81-L124/api/playlistPOST把播放列表链接展开成单个视频 URLapp.py#L127-L147/api/downloadPOST创建下载任务返回job_idapp.py#L150-L168/api/status/job_idGET查询任务状态下载中/完成/失败app.py#L171-L180/api/file/job_idGET下载已完成的任务文件app.py#L183-L188服务默认监听8899端口可通过环境变量PORT修改启动脚本为 reclip.sh也可用 docker-compose.yml 一键部署。 端点一/api/info 查询视频信息这是整个流程的入口。前端点击 Fetch 时就会调用它来拉取视频元数据。请求POSTJSON 体只需一个字段{ url: https://www.youtube.com/watch?vxxxx }成功响应{ title: 视频标题, thumbnail: 封面图URL, duration: 210, uploader: 上传者, formats: [ { id: 22, label: 720p, height: 720 }, { id: 18, label: 360p, height: 360 } ] }formats是清晰度列表每个分辨率只保留码率最高的一路并按分辨率从高到低排序——这正是页面上那排清晰度选择按钮的数据来源见 templates/index.html。小贴士该端点超时限制为 60 秒URL 不支持或视频不可用时会返回400状态码和{error: 原因}。 端点二/api/playlist 展开播放列表粘贴带list参数的 YouTube 播放列表链接时前端会自动先调用这个端点把列表炸开成一批单视频 URL再逐个走/api/info。请求{ url: https://www.youtube.com/watch?vxxxlistPLxxxx }成功响应{ urls: [https://...单个视频1, https://...单个视频2] }注意它返回的是纯 URL 数组不含视频详情——详情仍需逐个通过/api/info获取。⬇️ 端点三/api/download 创建下载任务确定好视频和格式后调用它启动下载。任务在后台线程中执行由 yt-dlp 引擎驱动接口会立刻返回不会阻塞。请求4 个字段{ url: 视频URL, format: video, format_id: 22, title: 视频标题 }formatvideo输出 MP4audio输出 MP3会忽略format_idformat_id/api/info返回的清晰度 id省略则取最佳画质title用于生成友好的下载文件名非法字符会被自动清理成功响应{ job_id: a1b2c3d4e5 }⏱️ 每个下载任务有 5 分钟超时上限。⏳ 端点四/api/status/job_id 轮询任务状态前端拿到job_id后会每秒轮询一次此端点轮询逻辑见 templates/index.html直到状态不再是downloading。请求GET无需任何参数job_id放在路径里。成功响应{ status: done, error: null, filename: 视频标题.mp4 }status三种取值downloading进行中、done完成附带filename、error失败error字段给出原因。如果job_id不存在返回404 {error: Job not found}。 端点五/api/file/job_id 取回下载好的文件最后一个端点最简单任务done之后GET 这个地址就能把文件当作附件下载浏览器直接触发保存。响应文件就绪直接返回 MP4/MP3 文件流文件名来自任务的filename文件未就绪404 {error: File not ready}文件会先保存在服务器本地的downloads/目录中downloads/目录由 app.py#L10-L11 自动创建。 5个端点串起来完整调用流程实际使用时5 个端点按以下顺序协作也就是页面上粘贴链接 → 点 Fetch → 点 Download背后发生的事可选链接是播放列表先调/api/playlist展开成单视频调/api/info拿标题、封面和清晰度用户选格式后调/api/download拿到job_id轮询/api/status/job_id直到done请求/api/file/job_id把文件保存到本地批量下载场景下前端会对每个视频重复第 3~5 步实现一键全部下载。⚠️ 错误码速查表状态码返回含义400{error: No URL provided}请求体缺少url字段400{error: yt-dlp 错误信息}URL 不支持、视频私密/被删、地区受限等400{error: Timed out ...}解析超时60 秒404{error: Job not found}job_id不存在任务记录在内存中服务重启即丢失404{error: File not ready}任务还没到done状态就去取文件 总结如何跑起来验证这些APIReClip 依赖极简requirements.txt 只有flask和yt-dlp两个 Python 包另需系统安装 ffmpeg。两种部署方式任选本地运行git clone https://gitcode.com/GitHub_Trending/rec/reclip后执行./reclip.sh浏览器打开http://localhost:8899Docker 运行用 Dockerfile 构建镜像gunicorn 单进程 4 线程启动下载文件通过数据卷持久化理解这 5 个端点后你甚至可以用 curl 或任何 HTTP 客户端编写自己的 ReClip 调用脚本把它嵌入自动化流程中。提示本工具仅供个人学习使用请遵守各平台的服务条款与版权法规。【免费下载链接】reclipDownload videos from almost any website. Lightweight, self-hosted media downloader with a clean web UI.项目地址: https://gitcode.com/GitHub_Trending/rec/reclip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考