[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-92911":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":16,"starSnapshotCount":16,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},92911,"Y2A-Auto","fqscfqj\u002FY2A-Auto","fqscfqj","YouTube到AcFun和bilibili自动化搬运工具，支持AI翻译、字幕生成、内容审核、智能监控",null,"https:\u002F\u002Fgithub.com\u002Ffqscfqj\u002FY2A-Auto","Python",1581,234,3,6,0,55,57.61,false,"main",[22,23],"acfun","bilibili","2026-07-22 04:02:07","\u003Cdiv align=\"center\">\n\n# Y2A-Auto\n\n\u003Cimg src=\"static\u002Fimg\u002Ffavicon.png\" width=\"96\" alt=\"Y2A-Auto Logo\" \u002F>\n\n将 YouTube 视频自动搬运到 AcFun \u002F bilibili 的一体化工具。\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-GPL%20v3-blue.svg)](LICENSE)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.11+-green.svg)](https:\u002F\u002Fwww.python.org\u002F)\n[![Docker](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocker-supported-blue.svg)](https:\u002F\u002Fwww.docker.com\u002F)\n\n从下载、ASR、字幕翻译、字幕质检、内容审核到上传，全流程自动化；内置 Web 管理后台、YouTube 监控和维护能力。\n\n[快速开始](#快速开始) · [功能概览](#功能概览) · [部署与运行](#部署与运行) · [配置说明](#配置说明) · [使用指南](#使用指南) · [通知推送](#通知推送) · [CookieCloud](#cookiecloud-集成) · [安全特性](#安全特性) · [常见问题](#常见问题)\n\n---\n\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Ft.me\u002FY2AAuto_bot\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTelegram%20Bot-%40Y2AAuto__bot-2CA5E0?logo=telegram&logoColor=white\" alt=\"Telegram Bot\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr\u002F>\n  \u003Cstrong>Telegram 转发机器人（试用）：\u003C\u002Fstrong>\n  \u003Ca href=\"https:\u002F\u002Ft.me\u002FY2AAuto_bot\">@Y2AAuto_bot\u003C\u002Fa>\n  \u003Cbr\u002F>\n  \u003Csub>自部署版本：\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffqscfqj\u002FY2A-Auto-tgbot\">Y2A-Auto-tgbot\u003C\u002Fa>\u003C\u002Fsub>\n\u003C\u002Fp>\n\n## 项目展示\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"static\u002Fimg\u002Freadme\u002Fdashboard-real.png\" alt=\"Dashboard Screenshot\" width=\"92%\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"static\u002Fimg\u002Freadme\u002Fmonitor-real.png\" alt=\"Monitor Screenshot\" width=\"45%\" \u002F>\n  \u003Cimg src=\"static\u002Fimg\u002Freadme\u002Fsettings-real.png\" alt=\"Settings Screenshot\" width=\"45%\" \u002F>\n\u003C\u002Fp>\n\n\u003Cdiv align=\"center\">\n  \u003Csub>以上为当前页面截图。\u003C\u002Fsub>\n\u003C\u002Fdiv>\n\n## 核心亮点\n\n| 能力模块 | 说明 |\n| --- | --- |\n| 全流程自动化 | 从下载、ASR、字幕、元信息到上传一条龙处理 |\n| 审核可控 | 支持人工审核、强制上传、内容安全检测和登录保护 |\n| 灵活部署 | Docker \u002F 本地双模式，支持 CPU 与多种 GPU 编码 |\n| 监控拉取 | 支持 YouTube 频道 \u002F 关键词定时抓取与历史记录 |\n| 消息推送 | 企业微信、Server酱、message-pusher 多渠道异步通知 |\n| CookieCloud | 从 CookieCloud 服务自动同步 YouTube Cookies |\n| 安全防护 | 密码保护、暴力破解锁定、会话超时、路径遍历防护 |\n| 维护完善 | 支持日志清理、下载清理、并发控制和 FFmpeg 自动补齐 |\n\n## 功能概览\n\n- 自动化流水线\n  - `yt-dlp` 下载视频与封面\n  - 自动或按需进行语音识别生成字幕，支持 Whisper、Voxtral\n  - 字幕翻译、字幕后处理、字幕质检（QC）与字幕烧录\n  - AI 生成标题、简介、标签与分区推荐\n  - 内容安全审核（阿里云 Green）\n  - 自动上传到 AcFun \u002F bilibili \u002F 双平台\n- Web 管理后台\n  - 任务列表、人工审核、强制上传\n  - 设置中心分组管理：运行概览、账号与网络、内容审核、AI 模型、字幕处理、语音识别、视频转码、监控与维护、安全\n  - 登录保护、错误次数锁定和密码管理\n- YouTube 监控\n  - 频道监控与关键词搜索监控\n  - 支持 latest \u002F historical 模式、视频类型筛选和自动加入任务队列\n  - 内置历史记录与配置文件恢复\n- 通知推送\n  - 企业微信、Server酱、message-pusher 三种渠道\n  - 任务添加 \u002F 完成 \u002F 失败、登录成功 \u002F 锁定、QR 登录成功 \u002F 失败等事件推送\n  - 异步重试队列，递增间隔保证投递\n- CookieCloud 集成\n  - 从 CookieCloud 服务自动拉取 YouTube \u002F Google Cookies\n  - 支持 auto \u002F legacy \u002F aes-128-cbc-fixed 加密模式\n  - Web UI 一键测试与同步\n- 字幕变换引擎\n  - 长行自动拆分、标点标准化、填充词 \u002F 重复词过滤\n  - 幻觉文本与噪声标签检测、文本密度过高检测\n  - 时间偏移、最短时长、相邻间隙合并等后处理\n- 视频转码\n  - 支持 CPU \u002F NVIDIA \u002F Intel \u002F AMD 硬件编码\n  - 默认优先 HEVC \u002F H.265，失败后自动回退到 H.264\n- 平台认证\n  - AcFun \u002F bilibili 支持 QR 码扫码登录\n  - bilibili 支持 Cookie 导入（Netscape \u002F JSON 格式）\n- 维护与环境\n  - Windows 可自动补齐 FFmpeg\n  - 支持日志清理、下载清理和自定义 FFmpeg 路径\n\n## 项目结构\n\n```text\nY2A-Auto\u002F\n├── app.py\n├── requirements.txt\n├── Dockerfile\n├── docker-compose.yml\n├── docker-compose-build.yml\n├── acfunid\u002F\n├── build-tools\u002F\n├── config\u002F\n├── cookies\u002F\n├── db\u002F\n├── downloads\u002F\n├── ffmpeg\u002F\n├── fonts\u002F\n├── logs\u002F\n├── modules\u002F\n├── static\u002F\n├── temp\u002F\n├── templates\u002F\n└── tests\u002F\n```\n\n## 快速开始\n\n推荐使用 Docker（无需手动安装 Python、FFmpeg、yt-dlp）。\n\n1. 准备 Cookie（必须）\n- `cookies\u002Fyt_cookies.txt`：YouTube 登录 Cookie\n- `cookies\u002Fac_cookies.json`：AcFun 登录 Cookie\n- `cookies\u002Fbili_cookies.json`：bilibili 登录 Cookie\n- 可使用浏览器扩展导出 `cookies.txt`，请勿提交到仓库\n\n2. 启动服务\n\n```bash\n# 默认从 Docker Hub 拉取镜像 fqscfqj\u002Fy2a-auto:latest\n# 如需使用 GitHub 容器注册表，可切换为 ghcr.io\u002Ffqscfqj\u002Fy2a-auto:latest\ndocker compose up -d\n```\n\n3. 打开 Web\n- 访问 `http:\u002F\u002Flocalhost:5000`\n- 首次进入建议先配置登录保护、平台账号和 YouTube Cookie\n\n默认会持久化目录：`config\u002F`、`db\u002F`、`downloads\u002F`、`logs\u002F`、`temp\u002F`、`cookies\u002F`。\n\n说明：`fonts\u002F` 中的字体属于项目内置依赖，用于字幕烧录；许可证见 `fonts\u002FLICENSE.txt`。\n\n## 部署与运行\n\n### 方案 A：Docker（推荐）\n\n- 启动：`docker compose up -d`\n- 停止：`docker compose down`\n- 重启：`docker compose restart`\n- 日志：`docker compose logs -f`\n\n如需本地构建镜像，可使用：\n\n```bash\ndocker compose -f docker-compose-build.yml up -d --build\n```\n\n### 方案 B：本地运行\n\n前置要求：\n- Python 3.11+\n- FFmpeg\n- yt-dlp\n\n```powershell\npy -3.11 -m venv .venv\n.\\.venv\\Scripts\\Activate.ps1\npip install -r requirements.txt\npython app.py\n```\n\n访问 `http:\u002F\u002F127.0.0.1:5000`。\n\n### 方案 C：Windows 便携包\n\n- `build-tools\u002F` 提供 Windows 可执行文件构建工具\n- 官方 Windows Release 包通常已内置 FFmpeg \u002F FFprobe\n- 如果手工打包，保持 `ffmpeg\u002F` 目录完整即可\n\n## 配置说明\n\n首次运行会自动生成 `config\u002Fconfig.json`。推荐先配置以下几类参数：\n\n### 基础与安全\n\n- `AUTO_MODE_ENABLED`：无人值守自动投稿总开关，默认 `false`\n- `password_protection_enabled`：Web 密码保护，默认 `false`\n- `LOGIN_MAX_FAILED_ATTEMPTS`：连续错误次数上限，默认 `5`\n- `LOGIN_LOCKOUT_MINUTES`：锁定时长，默认 `15`\n- `LOGIN_SESSION_TIMEOUT_MINUTES`：登录空闲超时时长，默认 `30` 分钟，最小 `1`，访问受保护页面会自动续期\n- `UPLOAD_TARGET_DEFAULT`：默认投稿平台，支持 `acfun`、`bilibili`、`both`\n- `UPLOAD_APPEND_REPOST_NOTICE`：是否自动追加转载声明，默认 `true`\n\n### 账号与网络\n\n- `YOUTUBE_COOKIES_PATH`：YouTube Cookie 路径\n- `ACFUN_COOKIES_PATH`：AcFun Cookie 路径\n- `BILIBILI_COOKIES_PATH`：bilibili Cookie 路径\n- `YOUTUBE_PROXY_ENABLED` \u002F `YOUTUBE_PROXY_URL`：YouTube 下载代理\n- `YOUTUBE_API_PROXY_ENABLED` \u002F `YOUTUBE_API_PROXY_URL`：YouTube 监控 API 独立代理，不继承下载代理\n- `YOUTUBE_DOWNLOAD_THREADS`：下载线程数\n- `YOUTUBE_THROTTLED_RATE`：下载速度限制\n- `YOUTUBE_API_KEY`：YouTube Data API v3 密钥，监控功能需要\n- `FFMPEG_LOCATION`：自定义 FFmpeg 路径\n- `FFMPEG_AUTO_DOWNLOAD`：Windows 缺失时自动下载 FFmpeg，默认 `true`\n\n### AI 与投稿\n\n- `OPENAI_API_KEY` \u002F `OPENAI_BASE_URL` \u002F `OPENAI_MODEL_NAME`：全局 AI 配置\n- `OPENAI_THINKING_ENABLED`：全局思考模式开关\n- `SUBTITLE_OPENAI_*`：字幕翻译专用覆盖配置，留空则回退全局\n- `SUBTITLE_QC_*`：字幕质检专用覆盖配置，留空则回退字幕翻译 \u002F 全局配置\n- `TRANSLATE_TITLE` \u002F `TRANSLATE_DESCRIPTION` \u002F `GENERATE_TAGS`：自动生成标题、简介、标签\n- `RECOMMEND_PARTITION`：自动推荐分区\n- `FIXED_PARTITION_ID` \u002F `FIXED_PARTITION_ID_BILIBILI`：固定分区\n- `YOUTUBE_UPLOADER_AS_FIRST_TAG`：将上传者作为首标签\n\n### 字幕处理\n\n- `SUBTITLE_TRANSLATION_ENABLED`：启用字幕翻译，默认 `false`\n- `YOUTUBE_AUTO_GENERATED_SUBTITLES_ENABLED`：下载 YouTube 自动生成字幕，默认 `false`\n- `SUBTITLE_SOURCE_LANGUAGE`：源语言，默认 `auto`\n- `SUBTITLE_TARGET_LANGUAGE`：目标语言，默认 `zh`\n- `SUBTITLE_FONT_NAME`：烧录字幕字体名，默认 `SourceHanSansHWSC-VF.otf`\n- `SUBTITLE_BATCH_SIZE`：翻译批次大小\n- `SUBTITLE_MAX_RETRIES` \u002F `SUBTITLE_RETRY_DELAY`：翻译重试策略\n- `SUBTITLE_EMBED_IN_VIDEO`：是否将字幕嵌入视频\n- `SUBTITLE_KEEP_ORIGINAL`：是否保留原始字幕文件\n- `SUBTITLE_MAX_WORKERS`：字幕翻译并发线程数\n\n### 语音识别（ASR）\n\n- `SPEECH_RECOGNITION_ENABLED`：是否启用语音识别生成字幕，默认 `false`\n- `SPEECH_RECOGNITION_PROVIDER`：支持 `whisper`、`voxtral`\n- `VAD_ENABLED`：VAD 语音扫描窗，默认 `true`\n- `WHISPER` 路径默认使用 `segment` 级时间戳，并自动兼容不支持 `timestamp_granularities` 的接口\n- `WHISPER_LANGUAGE` \u002F `WHISPER_PROMPT` \u002F `WHISPER_TRANSLATE`：Whisper 专用参数\n- `VOXTRAL_TIMESTAMP_GRANULARITIES`：默认 `segment,word`\n- `VOXTRAL_DIARIZE` \u002F `VOXTRAL_CONTEXT_BIAS` \u002F `VOXTRAL_LANGUAGE`\n- `VOXTRAL_MAX_AUDIO_DURATION_S` \u002F `VOXTRAL_LONG_AUDIO_MARGIN_S` \u002F `VOXTRAL_ENFORCE_MAX_DURATION`\n\n### 视频转码与维护\n\n- `VIDEO_ENCODER`：`auto` \u002F `cpu` \u002F `nvidia` \u002F `intel` \u002F `amd`\n- `VIDEO_CUSTOM_PARAMS_ENABLED` \u002F `VIDEO_CUSTOM_PARAMS`：自定义 FFmpeg 参数\n- `MAX_CONCURRENT_TASKS`：最大并发任务数，默认 `2`\n- `MAX_CONCURRENT_UPLOADS`：最大并发上传数，默认 `1`\n- `LOG_CLEANUP_ENABLED` \u002F `LOG_CLEANUP_HOURS` \u002F `LOG_CLEANUP_INTERVAL`\n- `DOWNLOAD_CLEANUP_ENABLED` \u002F `DOWNLOAD_CLEANUP_HOURS` \u002F `DOWNLOAD_CLEANUP_INTERVAL`\n\n### 通知推送\n\n- `NOTIFY_ENABLED`：启用消息推送，默认 `false`\n- `NOTIFY_CHANNELS`：启用的渠道列表，支持 `wecom`、`serverchan`、`message_pusher`\n- `NOTIFY_EVENTS`：订阅的事件列表，可选 `task_added`、`task_completed`、`task_failed`、`login_success`、`login_locked`、`qr_login_success`、`qr_login_failed`\n- 企业微信：`NOTIFY_WECOM_WEBHOOK_URL`\n- Server酱：`NOTIFY_SERVERCHAN_SENDKEY`\n- message-pusher：`NOTIFY_MESSAGE_PUSHER_SERVER` \u002F `NOTIFY_MESSAGE_PUSHER_USERNAME` \u002F `NOTIFY_MESSAGE_PUSHER_TOKEN`\n\n### CookieCloud\n\n- `COOKIECLOUD_ENABLED`：启用 CookieCloud 同步，默认 `false`\n- `COOKIECLOUD_SERVER_URL`：CookieCloud 服务地址\n- `COOKIECLOUD_UUID`：CookieCloud UUID\n- `COOKIECLOUD_PASSWORD`：CookieCloud 加密密码\n- `COOKIECLOUD_ENCRYPT_MODE`：加密模式，支持 `auto` \u002F `legacy` \u002F `aes-128-cbc-fixed`\n\n### 内容审核\n\n- `CONTENT_MODERATION_ENABLED`：启用阿里云内容审核，默认 `false`\n- `ALIYUN_ACCESS_KEY_ID` \u002F `ALIYUN_ACCESS_KEY_SECRET`：阿里云 AK\u002FSK\n- `ALIYUN_CONTENT_MODERATION_REGION`：审核服务区域\n- `ALIYUN_TEXT_MODERATION_SERVICE`：文本审核服务名，默认 `comment_detection_pro`\n\n### 下载质量\n\n- `YOUTUBE_DOWNLOAD_QUALITY_MODE`：下载质量模式\n- `YOUTUBE_DOWNLOAD_MAX_HEIGHT`：最大分辨率高度限制\n\n### 字幕后处理\n\n- `SUBTITLE_MAX_LINE_LENGTH`：单行最大字符数，默认 `42`\n- `SUBTITLE_MAX_LINES`：单条字幕最大行数，默认 `2`\n- `SUBTITLE_NORMALIZE_PUNCTUATION`：标点标准化，默认 `true`\n- `SUBTITLE_FILTER_FILLER_WORDS`：过滤填充词（um、uh 等），默认 `true`\n- `SUBTITLE_TIME_OFFSET_S`：字幕时间偏移（秒）\n- `SUBTITLE_MIN_CUE_DURATION_S`：最短字幕时长，默认 `0.6`\n- `SUBTITLE_MERGE_GAP_S`：相邻间隙合并阈值，默认 `0.3`\n\n### 配置示例\n\n```json\n{\n  \"AUTO_MODE_ENABLED\": false,\n  \"password_protection_enabled\": false,\n  \"password\": \"\",\n  \"UPLOAD_TARGET_DEFAULT\": \"acfun\",\n  \"OPENAI_API_KEY\": \"\",\n  \"OPENAI_BASE_URL\": \"https:\u002F\u002Fapi.openai.com\u002Fv1\",\n  \"OPENAI_MODEL_NAME\": \"gpt-3.5-turbo\",\n  \"OPENAI_THINKING_ENABLED\": false,\n  \"SUBTITLE_TRANSLATION_ENABLED\": false,\n  \"SUBTITLE_QC_ENABLED\": false,\n  \"SPEECH_RECOGNITION_ENABLED\": false,\n  \"SPEECH_RECOGNITION_PROVIDER\": \"whisper\",\n  \"VAD_ENABLED\": true,\n  \"VIDEO_ENCODER\": \"auto\",\n  \"FFMPEG_AUTO_DOWNLOAD\": true,\n  \"MAX_CONCURRENT_TASKS\": 2,\n  \"MAX_CONCURRENT_UPLOADS\": 1\n}\n```\n\n## 字幕质检说明\n\n启用 `SUBTITLE_QC_ENABLED: true` 后，系统会对 ASR 生成的源字幕做预检：\n\n- `SUBTITLE_QC_THRESHOLD`：AI 复核分数下限（0 ~ 1，默认 0.60）\n- `SUBTITLE_QC_SAMPLE_MAX_ITEMS`：AI 抽样条目上限，默认 80\n- `SUBTITLE_QC_MAX_CHARS`：AI 单次送检最大字符数上限，默认 9000\n- `SUBTITLE_QC_MODEL_NAME`：单独指定 QC 模型，留空则复用字幕翻译 \u002F 全局模型\n\nQC 会先用规则做硬拦截，只有边界样本才会调用 AI 严格复核。\n\n命中署名行、噪声提示、界面操作词、模板化重复句等明显低质量字幕时，会在规则层直接失败，不再进入宽松放行。\n\n可疑样本在 AI 不可用、返回异常或输出不合规时，默认按失败处理。QC 失败时会跳过烧录字幕，但仍保留字幕文件并继续上传原视频，任务最终标记为完成，并显示字幕异常标记。\n\n## 语音识别说明\n\n当前支持两类 ASR 提供商：\n\n- Whisper：兼容 OpenAI 风格接口，可使用独立的 API Key、Base URL 和模型名\n- Voxtral：Mistral \u002Fv1\u002Faudio\u002Ftranscriptions，默认模型为 `voxtral-mini-latest`\n\n建议优先保持 `VAD_ENABLED=true`。当前默认采用质量优先的扫描窗参数，分片更短、重叠更小，便于提升字幕边界精度。\n\n如果 VAD 结果不理想，系统会自动进入分片或整段兜底流程。\n\n## 内置字幕字体\n\n- 项目默认内置 `SourceHanSansHWSC-VF.otf`，作为字幕烧录依赖随仓库一起分发\n- 可通过 `SUBTITLE_FONT_NAME` 指定 `fonts\u002F` 目录中的字体文件名；程序会读取该文件的真实字体名供 libass 使用\n- 字体许可证位于 `fonts\u002FLICENSE.txt`\n\n## 使用指南\n\n1. 在首页或任务页提交 YouTube 链接创建任务。\n2. 自动模式下流程为：下载 -> ASR \u002F 字幕处理（可选） -> AI 元信息 -> 审核 -> 上传目标平台。\n3. 在人工审核页可调整标题、简介、标签、分区并强制上传。\n4. 启用 YouTube 监控后，可按频道或关键词定时拉取任务，并自动加入任务队列。\n5. 在设置页可分组维护账号、AI、字幕、ASR、转码、维护与安全项。\n6. AcFun \u002F bilibili 支持 QR 码扫码登录：在设置页点击「扫码登录」，用手机 App 扫码即可完成认证。\n7. 如已部署 CookieCloud 服务，可在设置页配置后一键同步 YouTube Cookies，无需手动导出。\n8. 启用通知推送后，任务状态变化和登录事件会自动推送到企业微信等渠道。\n\n## FFmpeg 与硬件加速\n\n- 默认优先使用项目内 `ffmpeg\u002F` 目录中的二进制\n- Windows 环境下如果 `ffmpeg\u002F` 缺失，系统可自动下载并补齐\n- `FFMPEG_LOCATION` 可覆盖默认路径，支持直接指向 `ffmpeg.exe` 或其所在目录\n- `VIDEO_ENCODER=cpu` 时使用 `libx264`（H.264）\n- `VIDEO_ENCODER=auto|nvidia|intel|amd` 时优先使用 HEVC \u002F H.265 硬件编码：\n  - NVIDIA：`hevc_nvenc`\n  - Intel：`hevc_qsv`\n  - AMD（Windows）：`hevc_amf`\n  - AMD（Linux）：`hevc_vaapi`\n- 如果 HEVC 硬编不可用或转码失败，会自动回退到 `libx264`（H.264）\n\n### Docker GPU 示例\n\nNVIDIA（推荐）：\n\n```yaml\n# 在 docker-compose.yml 内取消以下注释即可启用：\n# gpus: all\n# environment:\n#   - NVIDIA_VISIBLE_DEVICES=all\n#   - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility\n```\n\nIntel \u002F AMD（Linux）：\n\n```yaml\ndevices:\n  - \u002Fdev\u002Fdri:\u002Fdev\u002Fdri\ngroup_add:\n  - video\n  - render\n```\n\n> NVIDIA 专用覆盖文件已移除，相关配置已直接集成到主 `docker-compose.yml`。\n\n## YouTube 监控\n\n- 需要先配置 `YOUTUBE_API_KEY`\n- 支持关键词搜索、指定频道、历史搬运和持续跟进最新模式\n- 支持视频类型筛选：video \u002F short \u002F live\n- 可设置自动添加到任务队列，并保留监控历史记录\n- 配置文件会保存到 `config\u002Fyoutube_monitor\u002F`，历史数据库位于 `db\u002Fyoutube_monitor.db`\n\n## 通知推送\n\n支持三种推送渠道，可在设置页自由组合启用：\n\n| 渠道 | 标识 | 必需配置 |\n| --- | --- | --- |\n| 企业微信 | `wecom` | `NOTIFY_WECOM_WEBHOOK_URL` |\n| Server酱 | `serverchan` | `NOTIFY_SERVERCHAN_SENDKEY` |\n| message-pusher | `message_pusher` | `NOTIFY_MESSAGE_PUSHER_SERVER` + `USERNAME` + `TOKEN` |\n\n支持的事件类型：\n\n- `task_added`：任务添加\n- `task_completed`：任务完成\n- `task_failed`：任务失败\n- `login_success`：登录成功\n- `login_locked`：登录锁定\n- `qr_login_success`：QR 码登录成功\n- `qr_login_failed`：QR 码登录失败\n\n通知采用异步重试队列（SQLite outbox），递增间隔（30s → 120s → 600s → 1800s → 3600s）保证最终投递。企业微信优先使用 Markdown 格式，失败后自动回退纯文本。\n\n## CookieCloud 集成\n\n支持从 [CookieCloud](https:\u002F\u002Fgithub.com\u002Feasychen\u002FCookieCloud) 服务自动拉取 YouTube \u002F Google Cookies，免去手动导出的麻烦。\n\n- 配置 `COOKIECLOUD_SERVER_URL`、`COOKIECLOUD_UUID`、`COOKIECLOUD_PASSWORD` 后即可启用\n- 支持三种加密模式：`auto`（自动探测）、`legacy`、`aes-128-cbc-fixed`\n- 自动过滤仅保留 `youtube.com`、`youtu.be`、`google.com` 域名的 Cookie\n- 输出为 Netscape 格式 `cookies\u002Fyt_cookies.txt`\n- Web 设置页提供「测试连接」和「立即同步」按钮\n- 同步状态会记录时间戳、成功\u002F失败和消息，便于排查\n\n## 安全特性\n\n- **密码保护**：可选 Web UI 密码保护，首次进入设置页即可配置\n- **暴力破解防护**：连续错误 5 次自动锁定 15 分钟，锁定时发送通知\n- **会话超时**：登录空闲 30 分钟自动过期，访问受保护页面会自动续期\n- **SECRET_KEY 持久化**：首次运行自动生成 256-bit 随机密钥并保存，重启不丢失\n- **路径遍历防护**：所有文件操作使用 `werkzeug.security.safe_join`，Cookie 路径限制在项目目录内\n- **内容审核**：可对接阿里云 Green 审核服务，对 AI 生成的文本做合规检测\n- **登录事件通知**：QR 登录成功\u002F失败、密码锁定等事件可推送到企业微信等渠道\n\n## 常见问题\n\n- 403 \u002F 需要登录 \u002F not a bot\n  - 通常是 YouTube 反爬或权限问题，更新 `cookies\u002Fyt_cookies.txt`\n  - 也可通过 CookieCloud 自动同步，免去手动导出\n- 找不到 FFmpeg \u002F yt-dlp\n  - Docker 环境通常无需处理；本地运行请确保 PATH 正确\n  - 如果使用 Windows Release 包，通常不应出现缺失 FFmpeg；若出现，请确认 `ffmpeg\u002F` 未被安全软件隔离\n- 上传 AcFun 失败\n  - 更新 `cookies\u002Fac_cookies.json`，或在设置页使用 QR 码重新扫码登录\n  - 检查人工审核页元信息是否合规\n- 上传 bilibili 失败\n  - 更新 `cookies\u002Fbili_cookies.json`，或在设置页使用 QR 码重新扫码登录\n- 字幕翻译慢\n  - 调整并发与批量大小，同时注意 API 限速\n- Docker 未启用 NVENC\n  - 检查 `docker-compose.yml` 中 GPU 部分是否已取消注释\n  - 确认主机已安装 `nvidia-container-toolkit`\n- CookieCloud 同步失败\n  - 检查服务地址、UUID 和密码是否正确\n  - 确认 CookieCloud 服务可访问，可使用设置页「测试连接」按钮排查\n- 通知推送未收到消息\n  - 确认 `NOTIFY_ENABLED` 已开启，且目标渠道已正确配置\n  - 检查 webhook URL \u002F SendKey 是否有效\n\n## 贡献与反馈\n\n- 欢迎提交 Issue \u002F PR：`..\u002F..\u002Fissues`\n- 请勿提交包含 Cookie、密钥等敏感信息的文件\n\n## 致谢\n\n- [acfun_upload](https:\u002F\u002Fgithub.com\u002FAruelius\u002Facfun_upload)\n- [yt-dlp](https:\u002F\u002Fgithub.com\u002Fyt-dlp\u002Fyt-dlp)\n- [FFmpeg](https:\u002F\u002Fffmpeg.org\u002F)\n- [Flask](https:\u002F\u002Fflask.palletsprojects.com\u002F)\n- Bilibili 平台上传的技术参考资料\n  - 项目内的 `modules\u002Fbili_sdk` 部分参考了社区开源项目，针对上传流程做了适配。\n- [OpenAI](https:\u002F\u002Fopenai.com\u002F)\n\n## 许可证\n\n本项目基于 [GNU GPL v3](LICENSE) 开源。请遵守相关平台条款，仅在合法合规前提下用于学习与研究。\n","Y2A-Auto 是一款面向中文二次元社区的 YouTube 视频跨平台自动化搬运工具，支持一键同步至 AcFun 与哔哩哔哩。核心功能涵盖 YouTube 视频下载、ASR语音识别（Whisper\u002FVoxtral）、AI字幕翻译与质检、内容安全审核（集成阿里云绿网）、智能标题\u002F标签生成、多平台自动上传及 Web 可视化管理后台；支持 Docker\u002F本地双部署、频道与关键词监控、CookieCloud 自动同步及企业微信等多通道通知。适用于内容聚合运营、海外优质视频本地化分发、UP主辅助创作等需要合规、可控、批量跨站发布视频的场景。",2,"2026-07-11 02:30:19","trending"]