如何用curl调用ReClip:10分钟写出你的第一个命令行视频下载脚本

如何用curl调用ReClip:10分钟写出你的第一个命令行视频下载脚本 如何用curl调用ReClip10分钟写出你的第一个命令行视频下载脚本【免费下载链接】reclipDownload videos from almost any website. Lightweight, self-hosted media downloader with a clean web UI.项目地址: https://gitcode.com/GitHub_Trending/rec/reclipReClip 是一款开源、轻量、可自托管的视频下载器自带简洁的 Web 界面支持从 YouTube、TikTok、Instagram 等 1000 网站下载 MP4 视频或提取 MP3 音频。它的后端只有约 150 行 Python 代码并暴露了干净的 REST 接口——这意味着你可以完全绕开浏览器用curl直接驱动它。本文带你 10 分钟走完启动服务 → 调接口 → 拼脚本的全流程写出你的第一个命令行视频下载脚本。准备工作一键启动 ReClip 下载服务在调用接口之前需要先让 ReClip 跑起来。1. 安装依赖ReClip 的下载引擎依赖yt-dlp和ffmpeg安装脚本会自动检测缺失项# macOS (Homebrew) brew install yt-dlp ffmpeg # Debian / Ubuntu sudo apt install ffmpeg pip install yt-dlp2. 获取项目代码git clone https://gitcode.com/GitHub_Trending/rec/reclip cd reclip3. 启动服务./reclip.sh启动脚本 reclip.sh 会自动检查 python3、yt-dlp、ffmpeg 是否齐全创建虚拟环境并安装 requirements.txt 中仅有的两个依赖flask 和 yt-dlp然后监听http://localhost:8899。启动后打开浏览器你会看到 ReClip 的界面左侧粘贴一条或多条视频链接支持空格、逗号、换行分隔选择 MP4 或 MP3 模式点击FETCH加载视频信息再点DOWNLOAD或DOWNLOAD ALL批量下载 界面逻辑其实就对应后端几个接口下面我们会用 curl 逐一把它们调通。源码参考templates/index.html、app.py。认识 ReClip 的 5 个 REST 接口curl 调用的核心ReClip 的全部后端逻辑都在 app.py 中接口非常直白方法路径作用POST/api/info获取视频标题、时长、封面、清晰度列表POST/api/playlist展开播放列表返回各条视频的 URLPOST/api/download提交下载任务返回任务 IDGET/api/status/job_id查询任务状态downloading / done / errorGET/api/file/job_id下载完成后的文件其中三个关键接口获取视频信息在 app.py提交任务与查询状态在 app.py。第一步用 curl 获取视频标题与清晰度向/api/info发送一个包含 URL 的 JSON即可拿到视频元信息curl -s -X POST http://localhost:8899/api/info \ -H Content-Type: application/json \ -d {url: https://www.youtube.com/watch?vxxx}返回示例{ title: My awesome video, thumbnail: https://.../thumb.jpg, duration: 87, uploader: SomeChannel, formats: [ {id: 137, label: 1080p, height: 1080}, {id: 18, label: 360p, height: 360} ] }formats数组中的id就是下一步选清晰度时要用的format_id。第二步用 curl 提交下载任务拿到任务 ID下载是异步的先提交任务ReClip 在后台线程里跑yt-dlp单任务最长 5 分钟接口立即返回一个job_idcurl -s -X POST http://localhost:8899/api/download \ -H Content-Type: application/json \ -d {url: https://www.youtube.com/watch?vxxx, format: video}返回{job_id: a1b2c3d4e5}format字段有两个取值video下载 MP4audio提取 MP3。如果第一步拿到了清晰度列表还可以带上format_id: 137指定 1080p。第三步用 curl 轮询下载状态拿着job_id反复查询状态直到done或errorcurl -s http://localhost:8899/api/status/a1b2c3d4e5{status: done, error: null, filename: My awesome video.mp4}downloading还在下载等 2 秒再查done完成可以取文件error失败error字段里是 yt-dlp 的报错信息如该视频受地区限制第四步用 curl 保存文件到本地任务完成后请求文件接口并用-OJ自动按服务端建议的文件名保存curl -s -OJ http://localhost:8899/api/file/a1b2c3d4e5ReClip 会自动清理非法字符、把标题当作文件名并删除下载过程中的临时分片文件。完整脚本一行命令完成视频下载把四步拼起来就是你要的第一个命令行视频下载脚本dl.sh#!/bin/bash # 用法: ./dl.sh 视频URL URL$1 # 提交下载任务 JOB_ID$(curl -s -X POST http://localhost:8899/api/download \ -H Content-Type: application/json \ -d {\url\: \$URL\} | grep -o job_id:[^]* | cut -d -f4) # 轮询状态 while true; do RESP$(curl -s http://localhost:8899/api/status/$JOB_ID) STATUS$(echo $RESP | grep -o status:[^]* | cut -d -f4) [ $STATUS done ] break [ $STATUS error ] { echo 下载失败: $RESP; exit 1; } sleep 2 done # 保存文件 curl -s -OJ http://localhost:8899/api/file/$JOB_ID echo ✅ 下载完成以后下载任何支持站点的视频只需./dl.sh https://www.youtube.com/watch?vxxx配合/api/playlist接口见 app.py你还可以先展开播放列表拿到全部视频 URL再循环调用这个脚本实现批量命令行下载。进阶技巧用 curl 提取 MP3 音频想只留声音不要画面把format改成audio即可ReClip 会用yt-dlp -x --audio-format mp3帮你转码curl -s -X POST http://localhost:8899/api/download \ -H Content-Type: application/json \ -d {url: https://example.com/podcast-ep01, format: audio}同样轮询状态、下载文件后你得到的就是一个 MP3。常见问题Q1curl 提示连接被拒绝服务没启动或端口不对。ReClip 默认监听 8899 端口可通过环境变量PORT/HOST修改见 app.py。启动时终端会明确提示ReClip is running at http://localhost:8899。Q2想在服务器上长期运行用 Docker 更省事。项目自带 Dockerfile内置 ffmpeg、以非 root 用户运行和 docker-compose.yml下载文件挂载到独立卷docker compose up -dQ3下载失败提示超时单任务有 5 分钟上限大文件建议改用 Web 界面批量下载或检查网络。Q4可以商用吗工具仅限个人用途请尊重版权和平台服务条款。项目采用 MIT 协议见 LICENSE。小结ReClip 把视频下载拆成了 4 个语义清晰的接口info → download → status → file。用 curl 逐个调通它们你就能在终端里完成从获取信息到保存文件的全流程并轻松扩展出批量下载、MP3 提取、接入 CI 等玩法——这就是命令行视频下载脚本的最小闭环。【免费下载链接】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),仅供参考