文章大纲目录 (Table of Contents)
对于面向海外平台的视频创作者或自媒体运营者而言,向 YouTube 上传视频 往往是日常工作流中最耗时、最痛苦的环节之一。
尤其是国内网络环境下,动辄几 GB 的 4K / 1080p 高码率视频,通过常规代理隧道上传常常面临:
- 网络带宽受限:代理节点上传速度慢(普遍仅 1~3 MB/s),上传一个大视频需要苦等数小时;
- 极易意外断流:一旦中途节点波动,上传进度直接报错清零,必须从头再来;
- 多频道管理繁琐:频繁切换多个 YouTube 账号容易触发风控,多矩阵运营效率极其低下。
为了彻底解决这一痛点,我开发并开源了这套 零门槛 YouTube 矩阵自动化中继发布系统: 利用 Cloudflare R2 的全球边缘存储(国内直连上传极速拉满)结合 GitHub Actions 的免费云端算力(万兆级海外机房骨干网直连 YouTube API),实现免翻墙极速上传、多频道矩阵一键分发的极致工作流!
🔗 项目开源仓库:KJKuangYoutube/R2-YT-Relay (GitHub)
一、 系统架构与工作流原理
整套系统的设计理念是**“化整为零,云端中继”**:
本地视频直传 Cloudflare R2 存储桶
本地视频渲染完成后,无需挂代理,直接通过网页或客户端上传到 Cloudflare R2。跑满你的本地上行宽带,毫秒级响应不卡顿。
GitHub Actions 云端流水线接管中继
在 GitHub 网页上一键触发 Workflow,输入文件名。GitHub 微软海外云端容器(万兆带宽)自动拉取 R2 视频,全程仅需数秒。
通过 YouTube Data API v3 自动发布上线
Actions 自动调用官方 YouTube API,上传视频、填入标题描述,并可根据配置同时同步至多个矩阵频道。
二、 准备工作:获取 YouTube API 凭据
调用官方接口需要申请开发凭据。你可以根据自身习惯在以下两种方式中二选一:
方案 A:通过 Google OAuth Playground 在线获取(无需代码)
- 访问 Google Cloud Console 控制台 创建一个新项目,在 API 库中搜索并启用 YouTube Data API v3;
- 导航至 凭据 (Credentials) ➔ 创建凭据 ➔ 选择 OAuth 客户端 ID(应用类型选择 Web 应用);
- 在“已获授权的重定向 URI”中填入:
https://developers.google.com/oauthplayground; - 访问 Google OAuth Playground 调试平台:
- 点击右上角齿轮设置图标,勾选 “Use your own OAuth credentials”,填入刚刚申请的
Client ID和Client Secret; - 在左侧 API 列表中找到并展开
YouTube Data API v3,选中https://www.googleapis.com/auth/youtube.upload权限范围; - 点击 Authorize APIs 登录你的 YouTube 频道账号完成授权,在 Step 2 中点击 Exchange authorization code for tokens,即可复制出关键的
Refresh Token。
- 点击右上角齿轮设置图标,勾选 “Use your own OAuth credentials”,填入刚刚申请的
方案 B:本地运行 Python 脚本获取(适合开发者)
- 在 Google Cloud Console 创建 OAuth 客户端 ID 时,应用类型选择 桌面应用 (Desktop App);
- 点击下载生成的 JSON 凭据文件,保存到本地并重命名为
client_secrets.json; - 从项目仓库中下载
get_token.py,确保两个文件放在同一目录下; - 在终端中运行:
python3 get_token.py - 浏览器将自动弹窗提示授权登录,点击高级并确认授权,终端中就会直接输出提取好的
Refresh Token。
三、 配置 GitHub 自动化流水线
- 访问项目仓库并点击 Fork 到你的个人 GitHub 账号:
👉 https://github.com/KJKuangYoutube/R2-YT-Relay - 进入你 Fork 后的个人仓库,导航至 Settings ➔ Secrets and variables ➔ Actions;
- 点击 New repository secret,依次添加以下三项加密环境变量:
YOUTUBE_CLIENT_ID:你的 Google 客户端 IDYOUTUBE_CLIENT_SECRET:你的客户端密钥YOUTUBE_REFRESH_TOKEN:刚刚获取到的刷新令牌
多频道矩阵支持:如果你有多个 YouTube 频道需要同步分发,只需在 Secrets 中追加例如
YOUTUBE_REFRESH_TOKEN_B、YOUTUBE_REFRESH_TOKEN_C等变量,即可实现单视频一键批量推送!
四、 开启 Cloudflare R2 免费边缘存储
- 注册并登录 Cloudflare 控制台,在左侧导航栏找到 R2 对象存储;
- 点击 创建存储桶 (Create Bucket),起一个自定义名称(例如
yt-videos); - 进入该存储桶的 设置 (Settings) 页面,找到 公开访问 (Public Access),点击开启;
- 复制生成的 R2 公开访问域名(格式类似
pub-xxxxxxxx.r2.dev); - 回到你的 GitHub 仓库,在
.github/workflows/main.yml中,将下载地址的域名前缀替换为你自己的 R2 域名。
五、 每日发片极速实战(仅需 1 分钟)
配置完成后,今后发布任何新视频的日常流程将变得极其轻松惬意:
- 📤 极速上传:在电脑浏览器中打开 Cloudflare R2 存储桶界面,直接把渲染好的视频(例如
demo_video.mp4)拖拽上传(国内上传速度飞快); - 🚀 触发工作流:打开 GitHub 个人仓库的 Actions 标签页,点击左侧的
🚀 一键发布 YouTube; - ⌨️ 填写参数:点击右侧的 Run workflow 按钮,在弹出的输入框中填入视频文件名(如
demo_video.mp4)以及标题描述; - ☕ 自动发布:点击执行后,GitHub 云端容器会在 1~2 分钟内自动完成视频拉取、格式校验与 YouTube 官方 API 发布。关掉网页去喝杯咖啡,视频已成功上线!
六、 方案核心优势对比
| 维度 | 传统本地手工上传 | R2 + GitHub Actions 自动化中继 |
|---|---|---|
| 网络要求 | 强依赖本地代理节点,且要求大带宽与高稳定性 | 本地无需翻墙,直接直连上传 Cloudflare 边缘节点 |
| 上传速度 | 受到代理服务器中转限速,大文件极慢 | 本地上行跑满 + GitHub 海外机房万兆管道直传 |
| 断连风险 | 容易上传到 90% 突发中断,前功尽弃 | R2 支持断点直传;GitHub 到 YouTube 为内网级高速骨干,0 失败率 |
| 矩阵扩展 | 手动切换多个账号繁琐低效,易触发设备风控 | 一行命令多频道同时并行发布,矩阵管理轻松自如 |
| 经济成本 | 需购买昂贵的大流量高速节点 | 100% 免费(R2 每月 10GB 免费存储 + Actions 免费算力) |
⚠️ 安全操作准则
- 凭据安全隔离:
Refresh Token和Client Secret拥有频道的发布管理权限,严禁将其直接提交到任何公开的代码文件中,必须严格通过 GitHub Secrets 加密存储; - 公开访问桶清理:视频成功发布到 YouTube 后,建议定期在 R2 后台删除已发布的旧视频文件,以节约存储空间并保证资源干净整洁;
- API 配额管理:Google 对 YouTube Data API 默认提供每日 10,000 点免费配额(单次视频上传约消耗 1,600 点),普通创作者每日上传 5~6 部视频完全在免费配额内。
通过本套自动化系统,你不仅能够彻底甩掉网络卡顿的包袱,更能将宝贵的时间精力重新聚焦到内容创作与选题打磨本身!