рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдПрдордкреА 3 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ Youtube рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рдореЗрд░рд╛ рдХрд╛рдо рд▓реИрдкрдЯреЙрдк рдХреЗрд╡рд▓ 2GB рд░реИрдо рд╕реЗ рд▓реИрд╕ рд╣реИред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдУрдкрди рдореЗрдореЛрд░реА рдЯреИрдм рдХреЗ рд╕рд╛рде, рдпрд╣ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реНрд╡реИрдк рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмреНрд░реЗрдХ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдВрдЧреАрдд рдореБрдЭреЗ рдореЗрд░реЗ рдХрд╛рдо рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдПрдХ рдпреВрдЯреНрдпреВрдм рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЦреБрд▓рд╛ рдЯреИрдм рд╣реИред рддреЛ рдХрд╛рдо рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╣ рдЯреИрдм 500MB (!) рдФрд░ рдЙрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ (Google Chrome) рдЦрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдиреЗ рдореБрдЭреЗ рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬреЛ рдЗрдирдкреБрдЯ рдФрд░ рдПрдордкреА 3 рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рдЦрд┐рд▓рд╛рдбрд╝реА рдореЗрдВ рд╕реБрдиреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдордУрд╕реА рдореЗрдВ:
рдПрдордУрд╕реА


рдЖрдк YouTube рд╕реЗ рдПрдордкреА 3 рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ 3 рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
  1. рдбрд╛рдЙрдирд▓реЛрдб flv
  2. рд╕рд╛рдЙрдВрдбрдЯреНрд░реИрдХ рдирд┐рдХрд╛рд▓реЗрдВ
  3. рдЕрд╕реНрдерд╛рдпреА flv рдХреЛ рд╣рдЯрд╛рдПрдВ


рдмрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдЖрдИрдбреА "рд╕реВрдЪреА" рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред

рдирд┐рд░реНрднрд░рддрд╛:
sudo apt-get install youtube-dl ffmpeg libavcodec-extra-53 



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА, рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЯрд┐рдкреНрдкрдгреА ( рдбрд╛рдЙрдирд▓реЛрдб ):
 #!/bin/bash usage='usage: ./get_youtube_playlist <playlist_id> <target_folder> <num_songs> target_folder: (default: songs will be downloaded in current folder) num_songs: number of songs to get (default: 50) examples: ./get_youtube_playlist RD02HIkZaLeuF9k ./get_youtube_playlist RD02HIkZaLeuF9k "instrumental hip-hop beats" 10 ' playlist_id=$1 target_folder=$2 num_songs=$3 if [ -z "$playlist_id" ]; then echo "$usage" exit 1 fi if ! [[ "$num_songs" =~ ^[0-9]+$ ]] ; then num_songs=50 fi if [ -z "$target_folder" ]; then target_folder='./' elif [ ! -d "$target_folder" ]; then echo "Parameter target_folder is incorrect, $usage" exit 1 fi #  Youtube API     # https://developers.google.com/youtube/2.0/developers_guide_protocol_playlist_search youtube_api="`wget -qO- https://gdata.youtube.com/feeds/api/playlists/$playlist_id\?max-results\=$num_songs`" if [ -z "$youtube_api" ]; then echo "Playlist ID is incorrect, $usage" exit 1 fi # c ID     songs songs=( $(echo $youtube_api | \ grep -P -o "<media:player url='.*?&" | \ grep -P -o "(\w|-){11}") ) if [ -z "$songs" ]; then echo "Nothing to do, $usage" exit 1 fi #       for (( i = 1 ; i <= ${#songs[@]} ; i++ )) do youtube_id=${songs[$i-1]} track_number=`printf "%0*d" 2 $i` flv_path="$target_folder/$youtube_id.flv" mp3_path="$target_folder/$track_number. $youtube_id.mp3" # 1.  flv youtube-dl --audio-format=mp3 -o "$flv_path" "http://youtu.be/$youtube_id" if [ -f "$flv_path" ] then # 2. flv -> mp3 avconv -i "$flv_path" -y "$mp3_path" -acodec libmp3lame -ac 2 -ab 128k -vn # 3.  flv rm "$flv_path" fi done 


рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рди рдХреЗрд╡рд▓ рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рдлреЗрд░реАрд╡рд╛рд▓реЛрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд░реИрдо рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ред

Source: https://habr.com/ru/post/In183172/


All Articles