```pitone
importare il sistema operativo
da pytube importa YouTube
richieste di importazione
importare soundcloud
da Bandcamp importare Bandcamp
da bs4 importa BeautifulSoup
def YouTube_Downloader(url):
Tentativo:
# creazione di oggetti utilizzando YouTube
# che è stato importato all'inizio
yt =Youtube(URL)
# formati e risoluzioni che possono essere
Verrà visualizzato il numero scaricato secondo il tuo sistema
# Qui
print("Risoluzioni disponibili:")
all_res =yt.streams.all()
per i in all_res:
stampa(i)
# il video con la risoluzione più alta possibile
# scaricato è selezionato
ys =yt.streams.get_più alta_risoluzione()
# percorso in cui verranno salvati tutti i video
yt_path =os.getcwd()
# video viene scaricato nella posizione specificata
# posizione
ys.download(percorso_yt)
print("Download completato:", yt_path)
tranne Eccezione come e:
stampa(str(e))
def Soundcloud_Downloader(url):
Tentativo:
# percorso in cui verranno salvati tutti gli audio
percorso_sc =os.getcwd()
# creazione di oggetti utilizzando soundcloud
cliente =soundcloud.Cliente()
# track =client.get(url) è un oggetto
# ma poiché vogliamo solo un audio streaming
# URL per il download quindi 'stream_url'
audio =client.get(url, risoluzione =False)
stream_url =audio.stream_url
# ricevi la richiesta per ottenere il contenuto
risposta =request.get(stream_url, stream =True)
# assegna un nome al file audio
# qui sto nominando il file audio come
# il titolo della traccia con .mp3 come estensione
nome file =sc_path + '/' + audio.title.replace("/", "") + ".mp3"
# Il metodo open in Python apre il file in scrittura
# modalità per salvare il contenuto nel file. Qui,
# il file audio verrà archiviato nel sistema.
con open(nomefile, "wb") come f:
per pezzo in risposta.iter_content(chunk_size=1024):
se pezzo:
f.write(pezzo)
print("Download completato:", nome file)
tranne Eccezione come e:
stampa(str(e))
def Bandcamp_Downloader(url):
Tentativo:
# percorso in cui verranno salvati tutti gli audio
percorso_bc =os.getcwd()
# la funzione accetta l'URL dell'album come file
# argomento e restituisce l'oggetto per quello
# album particolare
album =Bandcamp(url)
# i seguenti cicli for stampano il nome della traccia
# e URL di tutte le tracce presenti nel file
#album
per la traccia in album.tracks():
print("Traccia:", traccia.titolo, traccia.url)
# scegli qualsiasi formato di download qui scelgo
# Formato "mp3-v0" ovvero mp3 da 320k
formato ="mp3-v0"
La funzione # scaricherà il brano/audio con
# utente ha inserito il nome e scarica l'audio
# formato specificato
per la traccia in album.tracks():
track.download(bc_path, track.title.replace("/","")+"."
+ formato)
print("Download completato:", percorso_bc)
tranne Eccezione come e:
stampa(str(e))
def principale():
mentre Vero:
print("Seleziona un'opzione:")
print("1. Scaricatore da YouTube")
print("2. Scaricatore SoundCloud")
print("3. Downloader Bandcamp")
print("4. Esci")
scelta =input("Inserisci la tua scelta:")
se scelta =="1":
url =input("Inserisci l'URL di YouTube:")
YouTube_Downloader(URL)
scelta elif =="2":
url =input("Inserisci l'URL del Soundcloud:")
Soundcloud_Downloader(url)
scelta elif =="3":
url =input("Inserisci URL Bandcamp:")
Bandcamp_Downloader(url)
scelta elif =="4":
print("Uscire...")
rottura
if __name__ =="__main__":
principale()
```