0

我正在使用 Streamlink 来帮助我的一些技术有挑战的年长朋友观看来自选定网站的流,这些网站每周直播两次或两次,并被收录到 Youtube 中。在网络广播之间,最好通过应用程序状态页面向用户显示下一个广播何时开始。

该平台是 Raspberry Pi 3 B+。我已修改 Youtube 插件以允许/禁止非直播流。如果命令行中有“--youtube-live-required”,则只会播放 LIVE 流。这可以防止 LIVE 网络直播在结束后重新开始,也可以防止 Youtube 随机选择的视频播放。我还应用了一个“即将发布”补丁,修复了 Youtube 最近所做的重大更改。我提到这些是为了让您知道我对 Streamlink 代码至少有一点了解,并且不是在寻找完全免费的搭便车。但是由于某种原因,我无法理解如何添加一个功能来从 Youtube.py 插件中获取“scheduledStartTime”值。我希望对 Streamlink 代码有深刻理解的人能给我一两条线索。

一旦获得 'scheduledStartTime' 值(它是纪元符号),自定义模块将通过 socketio 将该值发送到板载 Python 服务器,然后它可以处理数据并将其推送到已连接客户端的状态页面。

在无限循环中,Popen 启动 Streamlink。Popen 的输出是 PIPEd 并被观察以了解正在发生的事情,然后再次使用 socketio 将该信息发送到服务器。正是在这个循环中,“scheduledStartTime”数据将被收集(我认为)。

我该如何解决这个问题?

4

1 回答 1

0

我有一个解决这个问题的方法,我并不十分自豪,但它解决了这个问题,我终于可以关闭这个项目了。此外,事实证明这个解决方案不必使用 streamlink youtube.py 插件,但由于它无论如何都会获取感兴趣的 URL 的内容,所以我决定破解插件并将所有这些业务保存在一个地方。简而言之,一个简单的正则表达式会获取 scheduleStartTime 的值,如果它存在于获取的 URL 内容中。黑客:该值已打印输出为字符串“SCHEDULE START TIME:epoch time value”,在自定义模块中,通过 Popen PIPE 轮询此类信息,通过流链接显示。然后 Socket.io 将信息发送到板载服务器,该服务器将信息的按摩版本发送到应用程序的状态页面(Ionic 框架、打字稿等)。作品。简单的。丑陋的。完毕。

于 2019-07-26T03:52:15.907 回答