Project Icon

youtubeuploader

自动化YouTube视频上传的命令行工具

YoutubeUploader是一个开源的命令行工具,用于自动化YouTube视频上传过程。这个工具支持从本地或网络上传视频,可以限制上传带宽,并通过YouTube API进行身份验证。用户可以设置视频元数据,如标题、描述和标签。YoutubeUploader还支持通过JSON文件批量配置元数据,以及将视频添加到播放列表。这个工具特别适合需要批量或自动上传视频到YouTube的用户,如内容创作者或媒体机构。

YouTube上传器

测试

用于脚本化上传视频到YouTube。

  • 从本地磁盘或网络上传视频文件
  • 限制上传带宽

下载

获取适用于Linux、Mac或Windows的预编译二进制文件,或自行编译。

设置

YouTube API

与YouTube API通信需要OAuth2认证。因此,您必须:

  1. Google开发者控制台创建一个账户
  2. 为此应用创建一个新项目
  3. 启用YouTube API(API和服务 -> 启用API和服务 -> 点击右上角的"启用API和服务")。选择"YouTube Data API v3"
  4. 创建OAuth同意屏幕(API和服务 -> OAuth同意屏幕)
    • 添加一个测试用户。可以是任何Google用户账户,但应与将上传视频的YouTube账户对应。
  5. 创建凭据(API和服务 -> 凭据 -> 点击"创建凭据"),选择"OAuth客户端ID",选择"Web应用程序"
  6. 下载客户端密钥JSON文件(点击新创建的客户端ID旁边的下载图标),并将其保存为client_secrets.json文件,放在与工具相同的目录中,例如:
{
  "web": {
    "client_id": "xxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
    "project_id": "youtubeuploader-yyyyy",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://oauth2.googleapis.com/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_secret": "xxxxxxxxxxxxxxxxxxxx",
    "redirect_uris": [
      "http://localhost:8080/oauth2callback"
    ]
  }
}

注意1 Google将对上传到新创建项目的视频应用"私密"状态 - 来自Google的公告

2020年7月28日之后创建的未验证API项目通过videos.insert端点上传的所有视频将被限制为私密观看模式。要解除此限制,每个项目必须通过审核以验证是否符合服务条款。

更多信息请参见问题#86

注意2 默认情况下,由于Google设置的配额限制,每24小时您只能上传约6个视频。更多信息请参见问题#119

使用方法

最简单的用法,只需指定一个文件名:

./youtubeuploader -filename blob.mp4

如果这是您第一次运行该工具,会弹出一个浏览器窗口,提示您提供YouTube凭据。令牌将被创建并存储在本地目录的request.token文件中,供后续使用。要在无头服务器上运行该工具,请先在本地生成令牌文件,然后将令牌文件与youtubeuploaderclient_secrets.json一起复制到远程主机。 完整选项列表:

  -cache string
    	令牌缓存文件(默认为"request.token")
  -caption string
    	字幕文件名。可以是URL
  -categoryId string
    	视频分类ID
  -chunksize int
    	每个上传块的大小(以字节为单位)。值为零将导致所有数据在单个请求中上传(默认为16777216)
  -debug
    	开启详细日志输出
  -description string
    	视频描述(默认为"uploaded by youtubeuploader")
  -filename string
    	视频文件名。可以是URL。从标准输入读取使用'-'
  -language string
    	视频语言(默认为"en")
  -limitBetween string
    	仅在这些时间之间限制速率,例如 10:00-14:00(本地时区)
  -metaJSON string
    	包含标题、描述、标签等的JSON文件(可选)
  -metaJSONout string
    	写入已上传视频元数据的文件名(可选)
  -notify
    	通知频道订阅者新视频。指定'-notify=false'以禁用。(默认为true)
  -oAuthPort int
    	请求oAuth令牌时监听的TCP端口(默认为8080)
  -privacy string
    	视频隐私状态(默认为"private")
  -quiet
    	抑制进度指示器
  -ratelimit int
    	以Kbps限制上传速率。默认无限制
  -secrets string
    	客户端密钥配置(默认为"client_secrets.json")
  -tags string
    	以逗号分隔的视频标签列表
  -thumbnail string
    	缩略图文件名。可以是URL
  -title string
    	视频标题
  -version
    	显示版本

注意: 当将URL指定为文件名时,数据将通过本地主机流式传输(从远程主机下载,然后上传到YouTube)

如果指定了-quiet,将不显示上传进度。可以通过向进程发送USR1信号来输出当前进度,例如kill -USR1 <pid>(仅适用于Linux/Unix)。

元数据

视频标题、描述等可以通过命令行标志或使用-metaJSON标志通过JSON文件指定。示例JSON文件如下:

{
  "title": "我的测试标题",
  "description": "我的测试描述",
  "tags": ["测试标签1", "测试标签2"],
  "privacyStatus": "private",
  "madeForKids": false,
  "embeddable": true,
  "license": "creativeCommon",
  "publicStatsViewable": true,
  "publishAt": "2017-06-01T12:05:00+02:00",
  "categoryId": "10",
  "recordingdate": "2017-05-21",
  "playlistIds":  ["xxxxxxxxxxxxxxxxxx", "yyyyyyyyyyyyyyyyyy"],
  "playlistTitles":  ["我的测试播放列表"],
  "language":  "fr"
}
  • 所有字段都是可选的
  • 在描述中使用\n插入换行符
  • 时间可以以两种格式之一提供:yyyy-mm-dd(UTC)或yyyy-mm-ddThh:mm:ss+zz:zz
  • 通过命令行提供的任何值都将优先

发布

使用Goreleaser构建发布版本:

# 签名标签
git tag -s <标签>
git push --tags
GITHUB_TOKEN=xxxxyyy goreleaser release

致谢

基于 Go YouTube API 示例代码

感谢 github.com/tokland/youtube-upload 提供的更新播放列表的见解。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号