def start(): global dir_path print("Il tuo video verrà salvato in: " + dir_path) url = input("Inserisci l'URL della canzone o della playlist di YouTube: ") print("Accesso al link di YouTube: " + url + "...") try: video = YouTube(url) except: try: playlist = Playlist(url) except: print( "ERRORE. Controlla:\n -Connessione\n -l'URL è un URL di YouTube\n\nRiprova" ) redo = start() if ("playlist" in locals()): newdir = dir_path + "\\" + re.sub(r'[\.\\":\'*<>|#?~,\/]', '', playlist.title) os.mkdir(newdir) os.chdir(newdir) for video in playlist.videos: try: video_type = video.streams.filter(only_audio=True).first() title = video.title title = re.sub(r'[\.\\":\'*<>|#?~,\/]', '', title) title = re.sub(r' $', '', title) print("Downloading: {}...".format(title)) video_type.download(filename=title) print("Conversione in mp3") video = AudioFileClip(os.path.join(newdir, title + ".mp4")) video.write_audiofile(os.path.join(newdir, title + ".mp3")) video.close() os.remove(title + ".mp4") except: print("Errore!") os.chdir(dir_path) else: video_type = video.streams.filter(only_audio=True).first() title = video.title title = re.sub(r'[\.\\":\'*<>|#?~,\/]', '', title) title = re.sub(r' $', '', title) print("Downloading: {}...".format(title)) video_type.download(filename=title) print("Conversione in mp3") video = AudioFileClip(os.path.join(dir_path, title + ".mp4")) video.write_audiofile(os.path.join(dir_path, title + ".mp3")) video.close() os.remove(title + ".mp4") print("Pronto a scaricare un altra canzone o playlist\n\n") again = start()
def downloadmp3(message,bot): print('Download de musica do Youtube requisitado por {} {}'.format(message.chat.first_name,message.chat.last_name)) bot.reply_to(message,'Pedido recebudo,realizando processo...') url=(message.text).replace('/ytmp3 ','') print(url) file = YouTube(url) final = file.streams.filter(only_audio=True) final[0].download(output_path="downloads") tgt_folder = "downloads" for file in [n for n in os.listdir(tgt_folder) if re.search('mp4',n)]: full_path = os.path.join(tgt_folder, file) output_path = os.path.join(tgt_folder, os.path.splitext(file)[0] + '.mp3') clip = mp.AudioFileClip(full_path).subclip(10,) clip.write_audiofile(output_path) file = open(output_path, 'rb') bot.send_audio(message.chat.id, file, timeout=10000) file.close() os.system('rm -rf downloads')