在 Raspberry Pi 和 Python 上流式传输 YouTube 播放列表

Streaming a YouTube playlist on Raspberry Pi and Python

我正在开发基于 Raspberry Pi (2 B+) 的语音助手,我希望集成的功能之一是随时播放我的播放列表。

我试过在 os.system 中使用 youtube-dl 和 mplayer,就像这样,受到 this 答案

的启发

youtube-dl --playlist-random -o - "https://www.youtube.com/playlist?list=PLFepKcct_CJG0mu-nb-HvQ52FRKTEO6hT" | mplayer -

我知道 youtube-dl 将下载视频并将流通过管道发送到 mplayer,后者将播放音乐。 发生的事情是代码完美地播放了第一个视频,但是一旦视频结束,mplayer 就会停在最后一帧。尽管我可以看到 youtube-dl 正在下载播放列表中的视频,但它没有继续播放下一个视频。

有什么方法可以使用 youtube-dl 无缝播放播放列表中的多首歌曲?

您可以试试 omxplayer... 试试这个带有命名管道的小 sh 脚本 第一 mkfifo /home/midia/omxfifo 然后将此脚本保存在 script.shchmod +x:

下方
#!/bin/bash
FileToPlay=""
for LINK in $(cat $FileToPlay)
do
    echo "Playing : $LINK"

    omxplayer -o hdmi --vol -2 $(youtube-dl -g -f mp4 $LINK)</home/midia/omxfifo>/dev/null 2>&1 & echo -n '' >/home/midia/omxfifo


    echo "$LINK" >> watched.log
done

像这样调用脚本:

./script.sh file_with_yt_url.txt