Um arquivo m3u
ou m3u8
é apenas uma lista de links (um por linha) misturados com comentários. Eu usei o seguinte pequeno programa em Python para fazer o download de todas as partes da playlist uma a uma:
#!/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)
Se as partes forem MPEG .ts
files ("stream de transporte"), veja esta questão como se juntar a elas: Use o codec de cópia ffmpeg para combinar arquivos * .ts em um único mp4
Para outros tipos de arquivos, você provavelmente precisará de ferramentas. (veja aqui para mp3 )