Versão genérica

Como transferir playlists gratuitamente do Spotify para o YoutubeMusic

Obs: Esse artigo é uma tradução livre e simplificada da documentação oficial da ferramenta Spotify to YTMusic. Se você tem habilidades hackers e sabe se virar em inglês, é altamente recomendado que acesse o material original.

Esse post tem patrocínio e oferecimento do jeferson, lar das bichas autistas mais tecnológicas do universo, com agradecimento especial a Arthur "sem nosão", que me indicou essa ferramente em particular. Vamos direto ao ponto então: como transferir playlists gratuitamente do Spotify para o YoutubeMusic?

  1. Primeiramente

Certifique-se de que você tem Python e Git instalados no seu computador. Para isso, abra o terminal (ou o prompt de comando, se estiver usando windows) e digite:

python --version  
git --version

Após apertar enter, as versões de git e python da sua máquina devem aparecer no terminal assim:

Print de um terminal linux mostrando os comandos acima. O resultado saiu como

Caso você precise instalar o python e/ou git no seu computador, utilize os links abaixo:

Como Instalar o Git no Windows e Linux
Como instalar Python

  1. Clone de repositório, ambiente virtual e pacotes necessários

O próximo passo é clonar o repositório, então pense bem na pasta onde você quer deixar o programa para não gerar uma grande bagunça. Depois de escolher a pasta dentro do seu sistema, você pode abrir o terminal a partir dela.1 2

Depois, é só colar o comando a seguir e apertar enter:

git clone https://github.com/linsomniac/spotify_to_ytmusic.git
cd spotify_to_ytmusic

Em seguida, vamos criar o ambiente virtual, acessá-lo e instalar a api do YoutubeMusic, usando o seguinte comando:

No Windows:

python -m venv .venv
.venv\Scripts\activate
pip install ytmusicapi tk

Linux ou Mac:

python3 -m venv .venv
source .venv/bin/activate
pip install ytmusicapi tk
  1. Gerando credenciais do YouTubeMusic

Essa é a parte mais complicadinha do tutorial. Para usar a API do YouTubeMusic, precisaremos gerar uma credencial válida. Então, siga esses passos:

Status: 200 | Método: POST | Domínio: music.youtube.com

Se, incialmente, uma linha assim não estiver disponível, aperte em F5 no seu teclado ou recarregue a página para que novas requisições sejam feitas e a lista seja atualizada.

Depois de atualizar e detectar a linha, clique nela e observe que se abrirá uma aba lateral no menu de inspeção, no lado direito. Dentre as opções deste novo menu, observe se você está na aba de "Cabeçalhos" (e se não estiver, vá até ela). Navegue entre as opções de cabeçalhos até achar Cabeçalhos da requisição. Ao lado dessa opção, deve ter um botão com a opção "Bruto" ou "RAW". Habilite-o.

No Windows:

python spotify2ytmusic/ytmusic_credentials.py

Linux ou Mac:

python3 spotify2ytmusic/ytmusic_credentials.py

Importante: depois de rodar esse script, o arquivo de autenticação será criado. Se você iniciar o aplicativo através da interface gráfica, como será mostrado no passo seguinte, ele detectará automaticamente esse arquivo e fará login no YoutubeMusic. Você verá uma mensagem confirmando isso: File detected, auto login. A interface gráfica ignorará a aba de login e te levará diretamente para a aba de backup do Spotify.

  1. Use a interface gráfica para migrar playlists

Agora você já pode usar a interface gráfica! No terminal, execute o comando abaixo:

No Windows:

python -m spotify2ytmusic gui

Linux ou Mac:

python3 -m spotify2ytmusic gui

O programa te levará para a aba de backup do Spotify, pedindo para você clicar no botão de backup das playlists. É um processo que pode demorar. A partir daí, tudo fica bem intuitivo com as opções disponíveis. Dá para carregar suas músicas curtidas, listar as playlists para encontrar uma específica que você quer migrar, migrar todas as playlists de uma vez ou copiar playlists específicas.

Como esse processo é mais amigável, vou voltar o foco para outras duas questões que acabei encontrando no meio desse processo, tratando nos passos a seguir.

  1. Erro 401: Unauthorized

Migrando as playlists pela interface gráfica, em algum momento você pode se deparar com o seguinte erro:

ERROR: (Retrying add_playlist_items: X) Server returned HTTP 401: Unauthorized.

A partir daí, nada mais funciona, mas tem um jeito de consertar. O erro de autorização pode acontecer porque as credenciais acabam mudando com o tempo, especialmente se você deixar o YoutubeMusic aberto no navegador enquanto usa o programa de migração de playlists. Mas calma!!!, não feche essa aba ainda, precisaremos utilizá-la outra vez.

Encerre a interface gráfica. Volte até o passo 3 desse tutorial e siga tudo de novo, exatamente como está lá, pegando um cabeçalho bruto outra vez, colando no arquivo de txt dentro da pasta do programa e gerando novas credenciais. Depois disso, feche a aba do navegador e execute o comando do passo 4 outra vez para reabrir a interface gráfica. Tente voltar a migrar as playlists. Se o problema voltar a acontecer, tente seguir os passos outra vez, mas a melhor maneira de evitar esse tipo de problema de novo é usando o terminal. Nem é tão complicado assim, te explico no ponto 6.

  1. Prefira a linha de comando

Usar o Spotify to YTMusic via terminal é uma delícia e funciona muito bem! Dá para fazer exatamente as mesmas coisas da interface gráfica de maneira igualmente simples.

No terminal, execute spotify2ytmusic/spotify_backup.py. Ele vai te ajudar a autorizar o acesso à sua conta do Spotify.

Para salvar suas playlists e músicas curtidas no arquivo playlists.json, use o seguinte comando:

python3 spotify_backup.py playlists.json --dump=liked,playlists --format=json

Comando: python -m spotify2ytmusic load_liked

Nota da documentação: Ele irá passar pelas suas músicas curtidas do Spotify e as curtirá também no YoutubeMusic. Durante o processo, o terminal exibirá a música curtida no Spotify e, logo abaixo, a música encontrada e curtida no YTMusic. Chequei minhas músicas e parece que ele está fazendo um bom trabalho de correspondência entre as músicas do Spotify e do YTMusic. Até agora, não vi uma única falha entre algumas milhares de músicas, mas podem acontecer erros com títulos mais esotéricos.

Comando: python -m spotify2ytmusic load_liked_albums

O Spotify armazena álbuns curtidos fora das playlists de músicas curtidas. Essa linha funciona para jogar as músicas de álbuns curtidos para a playlist de músicas curtidas do YTMusic.

Comando: python -m spotify2ytmusic list_playlists

Esse comando listará as playlists que você tem, tanto no Spotify quanto no YTMusic.

Você pode tanto copiar todas as playlists de uma vez quanto fazer um trabalho mais pinçado e copiar apenas as playlists que desejar. Copiar todas as playlists usará o nome da playlists do Spotify como nome da playlist destino no YTMusic. Para copiar todas as playlists, rode o comando:

Comando: python -m spotify2ytmusic copy_all_playlists

Nota: Esse comando não copia a playlist de músicas curtidas (observe acima para isso).

Para copiar playlists individualmente, rode primeiro o comando de listar as playlists visto acima e ache o id da playlist (playlist id, a primeira coluna) do Spotify. Você também precisará do id da playlist destino do YTMusic para rodar o comando:

Comando: python -m spotify2ytmusic copy_playlist <ID_DA_PLAYLIST_DO_SPOTIFY> <ID_DA_PLAYLIST_DO_YTMUSIC>

Se você precisar criar uma playlist, rode o comando:

python -m spotify2ytmusic create_playlist "<NOME_DA_PLAYLIST>"

Outra opção é inserir o nome da playlist dentro do comando. Por exemplo:

python -m spotify2ytmusic copy_playlist <ID_DA_PLAYLIST_DO_SPOTIFY> "+Feeling Like a PUNK"

Executar outra vez os comandos para copiar playlists ou carregar músicas curtidas em eventos de falha deve ser uma alternativa segura, ou seja, não deve ocasionar entradas duplicadas nas playlists.

Referências:

  1. Documentação do Spotify to YTMusic
  2. Como Instalar o Git no Windows e Linux
  3. Como instalar Python
  1. How to open a CMD window in a folder on Windows

  2. How to open a terminal window at any folder from finder in MacOS