用于从多个文件夹创建播放列表的Python代码

时间:2015-11-09 05:37:58

标签: python kodi

这是我关于Stack Overflow的第一个问题,如果重复这一点,我非常抱歉。我一直在搜索上个月左右的代码,创建一个随机播放列表,每天晚上我会在我的Raspberry Pi(Raspbian)上使用Python运行。但是没有运气!

播放列表将由2个文件夹中的内容组成。音乐在1(大约200个文件)广告/ Jingles(5个文件)在另一个。我希望能够创建一个播放列表(m3u格式),每天可以随机播放音乐,但每5首歌曲仍然会播放一个广告/铃声。因此,每天应该重复的唯一事情就是广告/叮当声。

我目前正在为音乐播放器运行Kodi,因为我也想要电影。

有没有人可以帮我这个?

2 个答案:

答案 0 :(得分:0)

希望这会有所帮助。在音乐播放器上不太确定。我假设你有一个方法来打开文件并播放它。可以根据需要迭代今天播放列表中表示的文件列表。

from os import listdir
from os.path import isfile, join
music_file_path = "music"
jingle_file_path = "ads/jingles"
jingle_files = [ f for f in listdir(music_file_path) if isfile(join(music_file_path,f)) ]
music_files = [ f for f in listdir(jingle_files) if isfile(join(jingle_files,f)) ]

music_files.shuffle()
jingle_files.shuffle()

todays_playlist = []
for i in range(len(music_files)):
    todays_playlist.append(music_files[i])
    if i % 5 == 0:
        todays_play_list.append(jingle_files[ (i // 5) % len(jingle_files)])

答案 1 :(得分:0)

对于其他想要这样做的人,我找到了一个使用bash的好方法。得到了这个:https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=63568

#!/bin/bash
if [ -f /home/pi/music.lock ]; then
echo "Lock Exists, exiting"
exit 0
fi
touch /home/pi/music.lock
target="21"
cur=$(date '+%H')
while [ $target != $cur ]
do
cd /home/pi/music
mpg321 "$(ls *.mp3 | shuf -n1)"
mpg321 "$(ls *.mp3 | shuf -n1)"
mpg321 "$(ls *.mp3 | shuf -n1)"
mpg321 "$(ls *.mp3 | shuf -n1)"
mpg321 "$(ls *.mp3 | shuf -n1)"
cd /home/pi/messages
mpg321 "$(ls *.mp3 | shuf -n1)"
cur=$(date '+%H')
done
rm /home/pi/music.lock