Y2A-Auto 是一个用于将YouTube视频自动搬运到AcFun和Bilibili的全流程自动化工具。它集成了下载、ASR语音识别、AI翻译、内容审核和上传等功能,并提供了Web管理界面。

以下是一份详细的部署教程,主要推荐使用 Docker 方式,这是最省心、最快捷的部署方案。


📋 部署前准备

  1. 核心依赖:
    • DockerDocker Compose (推荐)。
    • Python 3.11+FFmpegyt-dlp (如选择本地运行)。
  2. 必要条件:
    • Cookie文件: 这是必须准备的,用于模拟登录目标平台。你需要获取以下Cookie文件并放到项目的 cookies/ 目录下:
      • yt_cookies.txt: YouTube的登录Cookie (Netscape格式)。
      • ac_cookies.json: AcFun的登录Cookie (JSON格式)。
      • bili_cookies.json: Bilibili的登录Cookie (JSON格式)。
      • 获取方法: 可以使用浏览器扩展(如EditThisCookie)导出。切勿将这些包含敏感信息的文件提交到代码仓库。
    • (可选) YouTube Data API v3 密钥: 如需使用频道/关键词监控功能,需要配置 YOUTUBE_API_KEY

🐳 第一步:Docker 部署 (推荐)

这是官方推荐的方式,能自动处理大部分环境依赖。

  1. 克隆项目

    1
    2
    git clone https://github.com/fqscfqj/Y2A-Auto.git
    cd Y2A-Auto
  2. 准备Cookie文件
    在项目根目录下创建 cookies 文件夹(如果不存在),并将你准备好的三个Cookie文件放入其中:

    1
    2
    3
    4
    5
    Y2A-Auto/
    └── cookies/
    ├── yt_cookies.txt
    ├── ac_cookies.json
    └── bili_cookies.json
  3. 配置环境 (可选)
    首次运行会自动生成 config/config.json。你也可以提前编辑或后续通过Web界面修改配置。

  4. 启动服务
    在项目根目录下,使用Docker Compose启动:

    1
    docker compose up -d

    该命令会从Docker Hub拉取镜像 (fqscfqj/y2a-auto:latest) 并在后台运行。

  5. 查看日志与状态

    1
    docker compose logs -f
  6. 访问Web界面
    在浏览器中打开 http://localhost:5000


💻 第二步:本地运行 (备选)

如果你更倾向于在本地Python环境中运行,请遵循以下步骤。

  1. 环境准备

    • 安装 Python 3.11+
    • 安装 FFmpeg 并确保其在系统PATH中,或后续在配置中指定路径。
    • 安装 yt-dlp
  2. 安装Python依赖

    1
    2
    3
    4
    5
    # 在项目根目录下
    py -3.11 -m venv .venv # 创建虚拟环境 (Windows)
    # source .venv/bin/activate # 激活虚拟环境 (Linux/macOS)
    .\.venv\Scripts\Activate.ps1 # 激活虚拟环境 (Windows PowerShell)
    pip install -r requirements.txt
  3. 准备Cookie文件
    同Docker方式,在项目根目录下创建 cookies 文件夹,并放入 yt_cookies.txtac_cookies.jsonbili_cookies.json

  4. 启动应用

    1
    python app.py

    访问 http://127.0.0.1:5000 即可。


⚙️ 第三步:基本配置与使用

首次启动后,建议进行以下配置:

  1. 登录保护 (安全): 在Web界面的设置中,强烈建议启用 password_protection_enabled 并设置一个强密码,避免管理界面暴露在公网。
  2. 配置账号与网络:
    • 确认 cookies/ 目录下的Cookie文件路径正确。
    • 如需使用监控功能,填入 YOUTUBE_API_KEY
    • 可根据网络情况配置代理 (YOUTUBE_PROXY_URL 等)。
  3. 配置AI功能 (可选):
    • 如需使用AI生成标题、简介、标签或字幕翻译,需要配置 OPENAI_API_KEYOPENAI_BASE_URLOPENAI_MODEL_NAME
    • 如需语音识别(ASR),可启用 SPEECH_RECOGNITION_ENABLED 并选择 whispervoxtral 提供商。
  4. 配置投稿目标:
    • UPLOAD_TARGET_DEFAULT 中选择默认投稿平台 (acfun, bilibili, both)。
  5. 添加任务:
    • 在Web首页或任务页面,提交一个YouTube视频链接,任务将自动进入处理流水线。
    • 在“人工审核”页面,你可以调整AI生成的元数据,并手动确认或强制上传。

🔧 第四步:高级功能与维护

  • YouTube监控: 配置好API Key后,可在设置中创建频道或关键词监控任务,系统将定时拉取新视频并自动加入队列。
  • CookieCloud集成: 如果部署了CookieCloud服务,可以配置 COOKIECLOUD_ENABLED 及相关参数,实现YouTube Cookie的自动同步更新,免去手动导出的麻烦。
  • 消息推送: 支持企业微信、Server酱、message-pusher,可在任务完成或失败时接收通知。
  • 硬件加速转码: 如果需要,可以在 docker-compose.yml 中取消注释GPU相关配置(如NVIDIA的 gpus: all),并在 VIDEO_ENCODER 中选择 nvidiaintelamd
  • 维护: 系统内置了日志和下载文件的自动清理策略,可在设置中调整保留时长。

❗ 常见问题与提示

  1. Cookie失效: 如果上传或下载失败,最常见的原因是Cookie过期。请重新导出并更新 cookies/ 目录下的对应文件,或在Web设置页使用 QR码扫码登录 功能重新获取B站/A站的Cookie。

  2. Docker权限问题: 如果启动日志出现 PermissionError,可能是挂载目录的权限问题。你需要创建这些目录并将所有者改为容器内的用户 (UID 1000):

    1
    2
    mkdir -p config db downloads logs cookies temp
    sudo chown -R 1000:1000 config db downloads logs cookies temp
  3. 云服务器访问: 出于安全考虑,不要将5000端口直接暴露在公网。推荐使用SSH端口转发进行本地访问:

    1
    ssh -N -L 5000:127.0.0.1:5000 user@<你的服务器IP>

    然后在本地浏览器访问 http://localhost:5000

  4. FFmpeg缺失: Docker环境内置了FFmpeg。本地运行时,请确保已安装并正确配置 FFMPEG_LOCATION 路径。

  5. GPU支持: 如需在Docker中使用NVIDIA GPU加速,请确保宿主机已安装 nvidia-container-toolkit,并在 docker-compose.yml 中取消 gpus 相关配置的注释。


至此,您已经完成了Y2A-Auto的部署。建议从单个视频任务开始测试整个流程,确保Cookie和各项配置正常工作后,再启用监控等自动化功能。