用Python读取多媒体播放列表文件(库)

用Python读取多媒体播放列表文件(库),python,audio,libraries,playlist,m3u,Python,Audio,Libraries,Playlist,M3u,如果库支持不同的播放列表格式,如M3U、WPL和其他格式,则建议使用哪些库来读取(解析)多媒体播放列表文件 对于Python,我找到了这个页面,它指向m3ute2项目,但它似乎已经死了。正如Misha所说,它们是纯文本文件,因此您可以非常轻松地解析它们 这是我不久前快速编写的python脚本,用于解析m3u文件,计算总播放时间,以及打印播放列表中每首歌曲的长度(分:秒)和名称 #!/usr/local/bin/python import string, sys def sec_to_days

如果库支持不同的播放列表格式,如M3U、WPL和其他格式,则建议使用哪些库来读取(解析)多媒体播放列表文件


对于Python,我找到了这个页面,它指向m3ute2项目,但它似乎已经死了。

正如Misha所说,它们是纯文本文件,因此您可以非常轻松地解析它们

这是我不久前快速编写的python脚本,用于解析m3u文件,计算总播放时间,以及打印播放列表中每首歌曲的长度(分:秒)和名称

#!/usr/local/bin/python

import string, sys

def sec_to_days(seconds) :
    return seconds / 86400

def sec_to_hours(seconds) :
    return seconds / 3600

def sec_to_minutes(seconds) :
    return seconds / 60

def sec_to_minutes_seconds(seconds) :
    minutes = sec_to_minutes(seconds)
    sec = seconds % 60
    return "%(n1)02d:%(n2)02d" % {"n1": minutes, "n2": sec}

# If no arguments were given, print a helpful message
if len(sys.argv)==1:
    print 'Usage:  m3utime filename.m3u'

    sys.exit(0)

filename = sys.argv[1]

items = [line.replace("#EXTINF:", "").strip() for line in file(filename) if line.startswith('#EXTINF')]

splitList = [line.split(",") for line in items ]

time = 0
for s in splitList : time = time + int(s[0])

days = sec_to_days(time)
hours = sec_to_hours(time) - (days * 24)
minutes = sec_to_minutes(time) - (days * 1440) - (hours * 60)
seconds = time % 60

print filename + " : " + str(time) + "s\n"

for s in splitList :
    print sec_to_minutes_seconds(int(s[0])), s[1]

print

print "Total play time : " + str(days) + ":" + str(hours) + ":" + str(minutes) + ":" + str(seconds) + "\n"

这里有一个用于解析播放列表的库。该库在很大程度上依赖于播放列表的正确mimetype。该库有几个样本可以测试。

我在尝试寻找Python多媒体库时的经验是,支持度很低。格式是纯文本,因此您应该能够编写自己的解析器而不会遇到太多麻烦。但是,如果Python的支持度很低,是否有C#(mono)或Java的库?您的库在哪个许可证下?我想在我的GPLv3授权播放器中使用它。链接已断。。。。