Download música do Spotify via YouTube e Soulseek. Corre no browser — sem instalação de app.
- Python 3.11 ou 3.12 — python.org/downloads
- Conta Spotify Premium (obrigatório desde Fevereiro 2026 para apps em Development Mode)
- Credenciais da Spotify Developer App (gratuito, ~5 minutos)
⚠️ Windows: durante a instalação do Python, marca a caixa "Add Python to PATH" antes de clicar Install. Sem isso, o terminal não reconhece o comandopython.
Vai a python.org/downloads e descarrega o Python 3.11 ou 3.12.
⚠️ Durante a instalação, marca obrigatoriamente a caixa "Add Python to PATH" antes de clicar Install. Se não fizeres isto, os comandos seguintes não vão funcionar.
Para verificar que ficou bem instalado, abre o PowerShell e corre:
python --versionDeverá mostrar algo como Python 3.12.x.
No GitHub, clica no botão verde "Code" → "Download ZIP".
Extrai o ZIP para uma pasta à tua escolha (ex: C:\Users\Tu\Downloads\SONGERAPP).
Abre a pasta SONGERAPP no Explorador de Ficheiros.
Clica com o botão direito dentro da pasta (em espaço vazio) → "Open in Terminal" ou "Abrir no Terminal".
O PowerShell deverá abrir já dentro da pasta correcta. Confirma com:
lsDeves ver ficheiros como server.py, requirements.txt, etc.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserQuando perguntar, escreve Y e pressiona Enter.
python -m venv venvAguarda terminar (cria uma pasta venv no projecto).
venv\Scripts\activateO terminal deverá mostrar (venv) no início da linha — isso confirma que está activo.
Tens de fazer isto sempre que abrires um novo terminal para correr o SONGER.
pip install -r requirements.txtDemora 1-2 minutos na primeira vez. No final deverá mostrar Successfully installed ....
Só precisas de fazer este passo uma vez.
python server.pyAbre o browser em http://localhost:8888
Para parar o servidor:
Ctrl + Cno terminal.
Só precisas de:
venv\Scripts\activate
python server.pyAo abrir o SONGER pela primeira vez, é pedido o Client ID e Client Secret do Spotify.
Para os obter:
-
Vai a developer.spotify.com/dashboard e faz login com a tua conta Spotify
-
Clica "Create app"
-
Preenche nome e descrição (qualquer coisa serve)
-
Em "Redirect URIs" adiciona estas 2 URIs (uma de cada vez, clica Add depois de cada uma):
https://open.spotify.comhttp://127.0.0.1:8888/callback
⚠️ Pode aparecer um aviso "This redirect URI is not secure" — é só um aviso, ignora e clica Add na mesma. -
Selecciona "Web API" em APIs used e guarda
-
Vai ao tab "User Management" e adiciona o teu email Spotify (o email com que fazes login no Spotify) → clica "Add user"
⚠️ Obrigatório: Sem este passo, as playlists e liked songs não vão funcionar. Em Development Mode, todos os utilizadores precisam de estar no allowlist (máximo 5 users). -
Na página da app → Settings → copia o Client ID e o Client Secret
-
Cola no SONGER e clica "Ligar ao Spotify"
-
Faz login na janela que abre e autoriza o acesso
Se as playlists aparecerem vazias ou com 0 tracks:
- Confirma que tens Spotify Premium
- Confirma que o teu email está no User Management do Developer Dashboard
- Vai a Settings no SONGER → clica "Disconnect Spotify" → reconecta
Isto força um novo token com as permissões correctas.
Depois do Spotify ligado, define:
- Pasta onde a música vai ser guardada (ex:
C:\Users\Tu\Music\SONGER) - Formato — MP3 320kbps é o recomendado para uso geral
Nota sobre FLAC: Se escolheres FLAC com fonte YouTube, o ficheiro é convertido de áudio lossy — não é lossless real. Para FLAC verdadeiro (de CD) precisas do Soulseek. Ver Help & FAQ dentro da app.
| Feature | Descrição |
|---|---|
| Search | Pesquisa músicas, álbuns e artistas no Spotify |
| Playlists | Vê e descarrega as tuas playlists (individual ou ZIP) |
| Liked Songs | Acesso directo às tuas músicas guardadas |
| Downloads | Fila de downloads em tempo real com progresso |
| Library | Biblioteca local das músicas já descarregadas |
| History | Histórico completo de downloads |
| Help & FAQ | Respostas a todas as dúvidas + aviso legal |
| Fonte | Qualidade | Requisitos |
|---|---|---|
| YouTube | Até 256kbps Opus/AAC | Só internet |
| Soulseek | FLAC lossless de CD | Conta Soulseek + slskd |
| Hybrid (recomendado) | Soulseek primeiro, YouTube como fallback | Conta Soulseek + slskd |
Para acesso a FLAC verdadeiro:
- Cria conta gratuita em slsknet.org
- Instala o slskd — daemon Soulseek com API REST:
- Download em github.com/slskd/slskd/releases
- Ou via Docker:
docker run -d --name slskd -p 5030:5030 -p 50300:50300 slskd/slskd
- Inicia o slskd e configura com o teu username/password Soulseek em
http://localhost:5030 - No SONGER → Settings → define slskd URL (
http://localhost:5030) e muda Source para Hybrid
Tudo fica guardado localmente no teu computador:
| Ficheiro | Conteúdo |
|---|---|
~/.songer/config.json |
Configurações (pasta, formato, source) |
~/.songer/.spotify_token.json |
Token OAuth Spotify (renovado automaticamente) |
~/.songer/history.json |
Histórico de downloads |
~/.songer/songer.log |
Logs da aplicação |
SONGER/
├── server.py # Servidor Flask (entry point web)
├── main.py # Entry point app desktop (PyQt6)
├── requirements.txt
├── core/
│ ├── spotify.py # Cliente Spotify (OAuth2, playlists, liked songs)
│ ├── youtube.py # yt-dlp wrapper (download + conversão ffmpeg)
│ ├── soulseek.py # slskd REST client
│ ├── downloader.py # Orquestrador de downloads (ThreadPool)
│ ├── metadata.py # Tags ID3/FLAC + cover art
│ ├── library.py # Scan biblioteca local
│ ├── history.py # Histórico JSON
│ └── ffmpeg_manager.py # ffmpeg bundled via imageio-ffmpeg
└── web/
├── app.html # SPA principal
└── static/
├── css/app.css
└── js/
├── app.js
├── api.js
├── player.js
└── views/ # home, search, playlists, liked, queue, library, history, faq
O SONGER é uma ferramenta pessoal de código aberto. O utilizador é inteiramente responsável pelo uso que faz do software e pelo cumprimento das leis de direitos de autor do seu país. Os criadores do SONGER não têm qualquer responsabilidade por acções legais decorrentes do uso desta ferramenta. Use de forma responsável.