把 YouTube 视频自动搬到 AcFun 和 bilibili(Y2A-Auto)
Y2A-Auto 是 fqscfqj 开源的 YouTube 搬运工具,用 Python 写成,把下载、语音识别、字幕翻译与质检、内容审核、投稿串成一条自动化流水线,并自带 Web 后台与频道监控。这篇文章讲清它的安装前置、最短启动路径、结果落在哪里,以及在 Cookie、代理、平台接口变动上常见的失败点,帮你判断值不值得自部署。
搬运 YouTube 视频到国内平台,手工做一遍要经过下载、转码、翻译、做字幕、压封面、写简介、选分区。频道更新一频繁,这些动作就按视频条数线性叠加。
Y2A-Auto 是一套用 Python 编写的 YouTube 视频搬运工具,输入视频链接或频道,自动完成下载、语音识别、字幕翻译、内容审核,再上传到 AcFun 或 bilibili。
它把运行状态收进一个 Web 后台,默认地址是 http://localhost:5000。任务在后台排队,人工审核、强制上传也在同一界面完成。下载依赖 YouTube 的 Cookie,投稿依赖 AcFun 与 bilibili 的 Cookie,三份凭据都要自备。

装它需要什么
代码托管在 https://github.com/fqscfqj/Y2A-Auto,许可证为 GPL-3.0,主要语言是 Python,仓库里 Python 代码占 82.4%。Docker 路线不需要手动装 Python、FFmpeg 和 yt-dlp;本地路线要自己备齐下列条件。
- Docker 与 Docker Compose(推荐路线);或 Python 3.11+、FFmpeg、yt-dlp(本地路线)
- 三份 Cookie 文件:
cookies/yt_cookies.txt(YouTube)、cookies/ac_cookies.json(AcFun)、cookies/bili_cookies.json(bilibili) - FFmpeg 版本 ≥ 5.1。字幕烧录用了
-fps_mode cfr,该选项在 5.1 才引入;把FFMPEG_LOCATION指向 5.0 或更早版本会因Unrecognized option 'fps_mode'直接失败 - YouTube Data API v3 密钥
YOUTUBE_API_KEY,启用频道或关键词监控时需要 - OpenAI 兼容接口的
OPENAI_API_KEY、OPENAI_BASE_URL、OPENAI_MODEL_NAME,用于标题简介生成与字幕翻译 - 代理开关
YOUTUBE_PROXY_ENABLED与YOUTUBE_PROXY_URL;监控 API 另有独立开关YOUTUBE_API_PROXY_ENABLED,不继承下载代理
跑起来
- 准备三份 Cookie,按上面的文件名放进
cookies/目录。 - 在项目目录执行
docker compose up -d,默认拉取fqscfqj/y2a-auto:latest。 - 浏览器打开
http://localhost:5000。 - 进设置页配置登录保护、平台账号和 YouTube Cookie。
- 提交一个 YouTube 视频链接,或打开监控让频道新视频自动入队。
启动日志若报 PermissionError,是挂载目录属主不对。建目录后改属主即可:
mkdir -p config db downloads logs cookies temp
sudo chown -R 1000:1000 config db downloads logs cookies temp
输出是什么
成品最终出现在 AcFun 或 bilibili 的投稿里,投哪个平台由 UPLOAD_TARGET_DEFAULT 决定,可选 acfun、bilibili、both。中间产物落在项目目录:下载文件在 downloads/,运行日志在 logs/,任务状态与配置分别在 db/ 和 config/config.json,首次运行会自动生成这个配置文件。
判断一次任务是否成功,看后台任务列表里的状态字段;开了通知推送的话,企业微信、Server酱、message-pusher 三个渠道也会收到任务完成或失败的消息。
用户反馈里,报错集中在下载和上传两端。yt-dlp 侧出现过 Requested format is not available,属于平台返回的可用格式变化导致下载中断,相关问题已解决。上传侧有用户从美国服务器投 B 站持续超时,报 curl: (28) Operation timed out after 30001 ms,该问题仍未关闭。CookieCloud 集成也有类似情况:浏览器扩展端测试正常、UUID 也对,但软件里配置的测试链接始终失败,同样开放中。
先说它做不到什么
搬运方向是单向的。项目只处理 YouTube 到 AcFun 与 bilibili,Issue 里有人提出把国内平台内容搬到 TikTok 或 YouTube,属于功能请求,目前没有实现。另一个仍开放的用法是「只想拿到下载并翻译好的成稿、不上传」,现阶段跳不过投稿环节。
出网方案要自己解决。代理需要在设置里显式填写,仓库不内置任何网络工具;国内网络环境下访问 YouTube 得自备手段,Issue 里有对应的报错记录。
平台接口一变动就会打断流水线。下载链路依赖 yt-dlp,投稿链路依赖两个平台的 Cookie 与接口,任何一侧改版都可能让任务卡在下载或上传阶段,前面列的几条开放问题都属于这一类。
下载和搬运视频,只适用于自己拥有版权或已获得授权的素材。未经许可抓取并转载他人视频可能构成著作权侵权,也会触发平台版权审核和账号处罚;这个项目提供的只是自动化能力,不改变内容授权要求。
适合已经在运营 AcFun 或 bilibili 频道、手上有稳定代理与平台账号、愿意用 Docker 长期挂一台机器的人。只想偶尔搬一两条、不愿配置三份 Cookie 和代理,或者需要反向搬运到 TikTok 与 YouTube 的,这个项目帮不上忙。
焚评:这个项目的量化评分
本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.1 分(满分 10)。下表是各维度的得分:
| 评分维度 | 得分 |
|---|---|
| 热度动量(权重 25%) | 10.0 / 10 |
| 开发活跃(权重 25%) | 7.3 / 10 |
| 社区响应(权重 15%) | 10.0 / 10 |
| 文档质量(权重 15%) | 8.5 / 10 |
| 发布节奏(权重 10%) | 9.8 / 10 |
| 风险控制(权重 10%) | 10.0 / 10 |
评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。
内容核验说明
这是一份面向自部署者的落地说明:安装前置、最短启动路径、产物落点、常见失败点都写清了,还先划出单向搬运、必须自备代理与三份 Cookie 的边界,能省掉动手前的试错。适合已有频道运营、愿意长期挂机的人。仓库指标与焚评分数来自公开页面,诀.com 未独立验证;平台接口变动引发的报错会长期存在,成功率无从核实。
文中的仓库指标(star、fork、许可证、语言占比等)与焚评评分来自公开页面,诀.com 未独立验证;项目行为描述与报错案例来自作者公开披露及仓库 Issue,未做本地部署测试,实际效果不保证复现。用户反馈摘要
根据仓库 Issue 来看,反馈集中在下载与上传两端。已解决的包括字幕未下载致翻译流程未执行、yt-dlp 报格式不可用导致下载失败、直播预告被监控捕捉后缺封面无法上传、保存配置请求挂起等;待解决的有 CookieCloud 配置测试链接始终失败、A 站上传报错,以及美国服务器投 B 站 curl 超时。另有反向搬运到 TikTok/YouTube 的功能请求,和一条请求私下披露安全问题的提交。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:fqscfqj(fqscfqj)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库