如何安排完全来自 Linux 的 YouTube 直播?

How can I schedule a YouTube livestream entirely from Linux?

我在 Raspberry Pi(带有其原生相机)上进行了设置,它使用 cronjob 启动 ffmpeg session 并将其输出流式传输到 YouTube。我每次 re-use 相同的流密钥,它被写入我的 ffmpeg 脚本中。这一切每周都完美运行,在所需时间自动启动和停止。 但是,在直播之前的每个星期,我都必须“手动”进入 YouTube Studio 并“安排”新的未来活动。这很简单,因为它让我可以“重复使用”以前的设置——我只需更改标题、日期和时间。但我也很想找出一种方法来自动化这部分流程。我假设它涉及使用 YouTube 数据 API,但我不太精通 API、JSON 等。 (我确实有很强的 Linux 背景、bash 脚本编写技能和一般编程背景。)

我的最终解决方案只需要:

所以,基本上,我是在寻求帮助开始使用 API,或者任何能够做到这一点的方法。我更愿意在执行 ffmpeg 编码的同一个 Pi 上对其进行编码(尽管在紧要关头,我可以从另一台计算机创建时间表,甚至 Windows)。任何例子都会很棒。

到目前为止,我所做的就是创建我的 Google 项目,在项目中启用 YouTube 数据 API,并创建我的 API 密钥。但我不确定从那里去哪里。

如果 Python 作为实现语言适合您,那么我建议使用 Google 的 APIs Client Library for Python

基本上,这个库质量好而且(与其他客户端库相比)使用简单。例如,它将使您不必显式处理 REST API 调用、JSON 等。您的代码也适用于 GNU/Linux 和 Windows.

您可以通过阅读官方入门文档开始您的旅程:YouTube Live Streaming API Overview. Then I recommend absorbing these two important documents: Life of a Broadcast and Understanding Broadcasts and Streams

然后去阅读、理解和运行 来自Google 的以下示例程序:create_broadcast.py。当然,您必须根据您的用例调整该代码。

您必须保持耐心和毅力(因为您说您之前没有使用 YouTube 数据的经验 API)。这 API 很重要,但它会在您的(编程)旅程结束时为您带来回报(您提到精通编程)。

特别提醒:为了能够调用实时流媒体 API,您首先需要熟悉与所谓的 OAuth 2.0 授权和身份验证相关的内容:Implementing OAuth 2.0 Authentication. There's an official document that you need absorb: OAuth 2.0 for Mobile & Desktop Apps.

更多参考资料:直播 API 有一个 official documentation too. The main site documenting the client library is: Google API Client Library for Python Docs. Its source is public, to be found within the client library's public repo under the directory docs

还有用的是看YouTube Data API's list of all instance methods