educare:youtube-dl
youtube-dl
L'ultima versione non è mai presente nei depositi ufficiali, ma si può scaricare
$ virtualenv myenv
$ source myenv/bin/activate
(myenv) $ pip install --upgrade youtube-dl
approfondimento su virtualenv
Rai Cultura
Youtube-dl non funziona sul sito Raicultura, ma seguendo alcune istruzioni si può fare il download.
Esempio
- si parte dalla pagina web che contiene il video, come questa:
- analizzando il codice sorgente, si trova un tag <div>
- con attributo data-video-url
- Usando wget per scaricare tale pagina si ottiene un file dal nome strano:
relinkerServlet.htm 100%[===================>] 233 --.-KB/s in 0s 2020-07-21 17:02:49 (19.6 MB/s) - ‘relinkerServlet.htm?cont=JpPpPlussOLuRYCxBvUpPpPlussHKe9RBQEAeeqqEEqualeeqqEEqual’ saved [233/233]
- al cui interno si trova questa una URL di un file .m3u8
#EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=10316000,RESOLUTION=1920x1080,CODECS="avc1.640029, mp4a.40.2",CLOSED-CAPTIONS=NONE http://2uscreativem3-vh.akamaihd.net/i/podcastcdn/Rai/RaiCultura/12483964.mp4/index_0_av.m3u8?null=0
- Usando wget per scaricare tale file .m3u8 si ottiene un file dal nome strano:
index_0_av.m3u8?nul 100%[===================>] 5.93K --.-KB/s in 0s 2020-07-21 17:14:19 (611 MB/s) - ‘index_0_av.m3u8?null=0’ saved [6077/6077]
- al cui interno si trova una serie di frammenti di video .ts
#EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-ALLOW-CACHE:YES #EXT-X-PLAYLIST-TYPE:VOD #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:10.000, http://2uscreativem3-vh.akamaihd.net/i/podcastcdn/Rai/RaiCultura/12483964.mp4/segment1_0_av.ts?null=0 #EXTINF:10.000, http://2uscreativem3-vh.akamaihd.net/i/podcastcdn/Rai/RaiCultura/12483964.mp4/segment2_0_av.ts?null=0 ... ... ... #EXTINF:10.000, http://2uscreativem3-vh.akamaihd.net/i/podcastcdn/Rai/RaiCultura/12483964.mp4/segment49_0_av.ts?null=0 #EXTINF:4.677, http://2uscreativem3-vh.akamaihd.net/i/podcastcdn/Rai/RaiCultura/12483964.mp4/segment50_0_av.ts?null=0 #EXT-X-ENDLIST
- Questo serve a rimuovere i commenti che iniziano con un cancelletto #
sed -i 's/#.*$//;/^$/d' file.txt
- Questo serve a scaricare tutti i frammenti
wget -i file.txt
- Ogni frammento ha una estensione strana
- segment1_0_av.ts?null=0
- segment2_0_av.ts?null=0
- ecc.
- Quindi va rinominato automaticamente usando questo piccolo script
for file in *.ts* ; do mv "$file" "${file%'?null=0'}"; done
- Alcuni frammenti NON sono in ordine alfabetico, quindi si deve usaare un accorgimento per metterli in ordine in un file di testo
ls -1tr *.ts > mialista.txt
- Questo serve a concatenare tutti i frammenti video
ffmpeg -f concat -safe 0 -i mialista.txt -c copy output.ts
- Questo comprime il video
ffmpeg -i output.ts -s:v cif -qcomp 0 -b:v 1M -maxrate 1M -bufsize 1M mini_output.ts
- Per mantenere l'aspetto (Ratio)
ffmpeg -i output.ts -s:v 608x342 -qcomp 0 -b:v 1M -maxrate 1M -bufsize 1M mini_output.ts
educare/youtube-dl.txt · Last modified: 2020/07/22 00:37 by profpro