2
所以我一直在爲Discordapp製作音樂播放器。事情是我想顯示歌曲標題和歌手藝術家。我該怎麼辦只從ffprobe輸出獲取歌曲標題和歌曲藝術家
player = voice_stream.create_ffmpeg_player('./audio_library/1.mp3')
# FFProbing for info
p = sp.Popen(['ffprobe', '-v', 'quiet', '-print_format', 'json=compact=1', '-show_format',
'./audio_library/1.mp3'], stdout=sp.PIPE, stderr=sp.PIPE)
op = p.communicate()
# a = dict(op)
# tit = a['title']
# art = a['artist']
# print(tit + '\n' + art)
ops = str(op)
print('op :- ' + ops)
opsn = re.sub("\r\n", "", ops)
print('opsn :- ' + opsn)
謝謝。另外如果可能的話,我可以知道如何將這些數據轉換爲json格式。我試圖使用json.loads(op)但我有錯誤說這是一個元組。
我的電流輸出是這樣的: -
op :- (b'{\r\n "format": { "filename": "./audio_library/1.mp3", "nb_streams": 1, "nb_programs": 0, "format_name": "mp3", "format_long_name": "MP2/3 (MPEG audio layer 2/3)", "start_time": "0.000000", "duration": "351.190200", "size": "14062151", "bit_rate": "320331", "probe_score": 50,\r\n "tags": { "title": "Rescue Me (Sigma Remix)", "artist": "Skepta", "encoded_by": "Lavf52.31.0" } }\r\n}\r\n', b'')
opsn :- (b'{\r\n "format": { "filename": "./audio_library/1.mp3", "nb_streams": 1, "nb_programs": 0, "format_name": "mp3", "format_long_name": "MP2/3 (MPEG audio layer 2/3)", "start_time": "0.000000", "duration": "351.190200", "size": "14062151", "bit_rate": "320331", "probe_score": 50,\r\n "tags": { "title": "Rescue Me (Sigma Remix)", "artist": "Skepta", "encoded_by": "Lavf52.31.0" } }\r\n}\r\n', b'')
應該是op_json = json.loads(op [0] .decode('utf-8'))。其他則是完美的。謝謝。 – lap00zza
已修復。偉大的,它幫助。 –