Файл m3u
или m3u8
- это просто список ссылок (по одной на строку) с комментариями. Я использовал следующую маленькую программу на Python для загрузки всех частей плейлиста один за другим:
#!/usr/bin/env python3
import subprocess
import os
def dump(playlist):
urls = []
with open(playlist, 'r') as fh:
for line in fh:
if line[0] == '#':
continue
urls.append(line.strip())
count = 1
for url in urls:
dumpfile = 'part%04d.ts' % count
count += 1
if os.path.exists(dumpfile):
print('Skipping %s...' % dumpfile)
cmd = [
'mplayer',
'-dumpfile', dumpfile,
'-dumpstream',
url
]
print('%s -> %s' % (url, dumpfile))
rc = subprocess.call(cmd)
if rc != 0:
raise Exception('dump failed')
if __name__ == '__main__':
import sys
playlist = sys.argv[1]
dump(playlist)
Если части представляют собой файлы MPEG .ts
("транспортный поток"), см. Вопрос, как их объединить: используйте кодек ffmpeg copy, чтобы объединить файлы * .ts в один файл mp4.
Для других типов файлов вам, вероятно, понадобятся инструменты. (см. здесь для mp3)