Voila une solution qui permet de downloader une vidéo YouTube (utilisable avec d'autres sites type dailymotion..., moyennant quelques adaptations), puis d'en extraire directement la piste audio au format mp3.
Pour cela il vous faut perl, le module LWP::UserAgent, le logiciel ffmpeg ainsi que 2 mains de 5 doigts chacune.
Voila la ligne qui va bien :
perl -MLWP -e '( $base_url, $idv ) = shift =~ /^(.+m)\/.+v=(.+)/;
$r =
( $ua = LWP::UserAgent->new )
->get( "$base_url/get_video?video_id=$idv&t="
. ( $ua->get("$base_url/v/$idv")->request->uri =~ /&t=(.+)/ )[0] );
print $r->decoded_content;' "___url_video___" | ffmpeg -i - -vn -acodec copy ___fichier_out___.mp3
Le code a été formatté avec perltidy histoire qu'il soit un peu plus lisible, sinon je ne ments pas, ca tient bien sur une ligne :
perl -MLWP -e '($base_url,$idv)=shift=~/^(.+m)\/.+v=(.+)/;$r=($ua=LWP::UserAgent->new)->get("$base_url/get_video?video_id=$idv&t=".($ua->get("$base_url/v/$idv")->request->uri=~/&t=(.+)/)[0]);print $r->decoded_content;' "___url_video___" | ffmpeg -i - -vn -acodec copy ___fichier_out___.mp3