如果庫支持不同的播放列表格式,如M3U,WPL等,您推薦閱讀(解析)多媒體播放列表文件的哪些庫?在Python中讀取多媒體播放列表文件(庫)
對於Python我發現這個頁面http://wiki.python.org/moin/PythonInMusic,這指向m3ute2項目,但它似乎已經死了。
如果庫支持不同的播放列表格式,如M3U,WPL等,您推薦閱讀(解析)多媒體播放列表文件的哪些庫?在Python中讀取多媒體播放列表文件(庫)
對於Python我發現這個頁面http://wiki.python.org/moin/PythonInMusic,這指向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。有幾個樣本可以在庫上進行測試。 http://t11.mine.nu/playlists_analyser.tar.gz
我在嘗試爲Python找到多媒體庫時的經驗是支持很差。 – 2011-02-01 03:07:06
格式爲純文本格式,因此您應該可以編寫自己的解析器,而不會有太多麻煩。 – misha 2011-02-01 04:35:23