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()
示例#2
0
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')