Aqui está um programa Python simples para baixar músicas grátis legalmente de várias fontes como YouTube, SoundCloud e Bandcamp:
```píton
importar sistema operacional
do pytube importar YouTube
solicitações de importação
importar nuvem de som
da importação do bandcamp Bandcamp
da importação bs4 BeautifulSoup
Baixar vídeo do YouTube
defYouTube_Downloader(url):
tentar:
# criação de objeto usando o YouTube
# que foi importado no início
yt =Youtube(url)
# formatos e resoluções que podem ser
# baixado de acordo com seu sistema irá mostrar
# aqui
print("Resoluções Disponíveis:")
all_res=yt.streams.all()
para eu em all_res:
imprimir (eu)
# o vídeo de maior resolução possível
# baixado está selecionado
ys =yt.streams.get_highest_resolution()
# caminho onde todos os vídeos serão salvos
yt_path =os.getcwd()
# vídeo é baixado no local especificado
# local
ys.download(yt_path)
print("Download concluído:", yt_path)
exceto Exceção como e:
imprimir(str(e))
Baixar áudio do Soundcloud
def Soundcloud_Downloader (url):
tentar:
# caminho onde todos os áudios serão salvos
sc_path=os.getcwd()
#criação de objetos usando soundcloud
cliente =soundcloud.Cliente()
# track =client.get(url) é um objeto
# mas como queremos apenas um áudio streamable
# URL para download então 'stream_url'
áudio =cliente.get(url, resolver =Falso)
stream_url=áudio.stream_url
# obtém solicitação para obter o conteúdo
resposta =solicitações.get (stream_url, stream =True)
# nomeie o arquivo de áudio
# aqui estou nomeando o arquivo de áudio da mesma forma que
# o título da faixa com .mp3 como extensão
nome do arquivo =sc_path + '/' + audio.title.replace("/", "") + ".mp3"
# método open em python abre o arquivo por escrito
# modo para salvar o conteúdo do arquivo. Aqui,
# o arquivo de áudio será armazenado no sistema.
com open(nome do arquivo, "wb") como f:
para pedaço em response.iter_content(chunk_size=1024):
se pedaço:
f.write(pedaço)
print("Download concluído:", nome do arquivo)
exceto Exceção como e:
imprimir(str(e))
Baixar álbum do Bandcamp
def Bandcamp_Downloader(url):
tentar:
# caminho onde todos os áudios serão salvos
bc_path =os.getcwd()
# a função pega a url do álbum como um
# argumento e retorna o objeto para isso
# álbum específico
álbum =Bandcamp(url)
# o seguinte for loops imprime o nome da faixa
# e URL de todas as faixas presentes no
# álbum
para faixa em album.tracks():
print("Trilha:", track.title, track.url)
# escolha qualquer formato de download aqui eu escolho
# Formato "mp3-v0" que é mp3 de 320k
formato ="mp3-v0"
# função irá baixar a música/áudio com
# usuário digitou o nome e baixou o áudio em
# formato especificado
para faixa em album.tracks():
track.download(bc_path, track.title.replace("/","")+"."
+ formato)
print("Download concluído:", bc_path)
exceto Exceção como e:
imprimir(str(e))
def principal():
enquanto Verdadeiro:
print("Selecione uma opção:")
imprimir("1. Downloader do YouTube")
imprimir("2. Downloader do SoundCloud")
imprimir("3. Downloader do Bandcamp")
imprimir("4. Sair")
escolha =input("Digite sua escolha:")
se escolha =="1":
url =input("Insira o URL do YouTube:")
YouTube_Downloader(url)
escolha elif =="2":
url =input("Insira o URL do Soundcloud:")
Soundcloud_Downloader(url)
escolha elif =="3":
url =input("Insira a URL do Bandcamp:")
Bandcamp_Downloader(URL)
escolha elif =="4":
print("Saindo...")
quebrar
se __nome__ =="__main__":
principal()
```