User Tools

Site Tools


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

  1. si parte dalla pagina web che contiene il video, come questa:
  2. analizzando il codice sorgente, si trova un tag <div>
    1. con attributo data-video-url
  3. 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]
  4. 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 
  5. 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] 
  6. 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 
  7. Questo serve a rimuovere i commenti che iniziano con un cancelletto #
    1. sed -i 's/#.*$//;/^$/d' file.txt
  8. Questo serve a scaricare tutti i frammenti
    1. wget -i file.txt 
  9. Ogni frammento ha una estensione strana
    1. segment1_0_av.ts?null=0
    2. segment2_0_av.ts?null=0
    3. ecc.
  10. Quindi va rinominato automaticamente usando questo piccolo script
    1. for file in *.ts* ; do mv "$file" "${file%'?null=0'}"; done 
  11. Alcuni frammenti NON sono in ordine alfabetico, quindi si deve usaare un accorgimento per metterli in ordine in un file di testo
    1. ls -1tr *.ts > mialista.txt 
  12. Questo serve a concatenare tutti i frammenti video
    1. ffmpeg -f concat -safe 0 -i mialista.txt -c copy output.ts
  13. Questo comprime il video
    1. ffmpeg  -i output.ts -s:v cif -qcomp 0 -b:v 1M -maxrate 1M -bufsize 1M mini_output.ts
  14. Per mantenere l'aspetto (Ratio)
    1. 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