把 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,三份凭据都要自备。

Y2A-Auto 的 Web 管理后台界面

装它需要什么

代码托管在 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,不继承下载代理

跑起来

  1. 准备三份 Cookie,按上面的文件名放进 cookies/ 目录。
  2. 在项目目录执行 docker compose up -d,默认拉取 fqscfqj/y2a-auto:latest。
  3. 浏览器打开 http://localhost:5000。
  4. 进设置页配置登录保护、平台账号和 YouTube Cookie。
  5. 提交一个 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,未做本地部署测试,实际效果不保证复现。

项目来源与说明

开源项目:fqscfqj(fqscfqj)

本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。

查看项目仓库