Sobre o projeto

# Psst Psst é um cliente Spotify multiplataforma de alto desempenho, com interface gráfica de usuário (GUI) nativa. Escrito inteiramente em Rust, evita a sobrecarga de aplicativos baseados em Electron, proporcionando uma experiência leve e responsiva. O software é totalmente multiplataforma, suportando Windows, Linux e macOS. ## Principais Recursos - **Desempenho Nativo**: Construído com Rust para velocidade e eficiência, utilizando a biblioteca de interface Druid para uma aparência e sensação nativas. - **Funcionalidade Principal**: Suporta reprodução de faixas em Vorbis, navegação por álbuns e faixas salvos, playlists seguidas e playlists de gênero, incluindo conteúdo "Para Você". - **Busca e Descoberta**: Permite pesquisar artistas, álbuns e faixas diretamente no aplicativo. - **Suporte a Podcasts**: Inclui funcionalidade para navegar e ouvir podcasts. - **Controles de Reprodução**: Apresenta controle por teclas de mídia, ajuste de volume de áudio e normalização de loudness. - **Temas**: Inclui uma opção de tema escuro. - **Privacidade**: Conecta-se apenas a servidores oficiais do Spotify; não envia dados para casa. As credenciais do usuário não são armazenadas localmente; em vez disso, são usados tokens de autenticação reutilizáveis do Spotify. Os caches são armazenados localmente e podem ser excluídos a qualquer momento. ## Requisitos - Uma conta **Spotify Premium** é necessária para usar o aplicativo. - A partir de fevereiro de 2026, devido a mudanças nas políticas de acesso para desenvolvedores do Spotify, o Psst exige que os usuários registrem seu próprio ID de Cliente de Desenvolvedor do Spotify para recursos da Web API (como busca, acesso à biblioteca e playlists). Os usuários devem registrar um aplicativo no Painel de Desenvolvedor do Spotify e inserir o ID do Cliente na tela de login do Psst. ## Suporte a Plataformas - **Windows**: Disponível via download executável. - **macOS**: Disponível via instalador DMG. - **Linux**: Disponível para arquiteturas x86_64 e aarch64, incluindo pacotes Debian (.deb). - **OpenBSD**: Em andamento; o suporte pode ser instável. Compilações não oficiais também estão disponíveis através do Arch User Repository (AUR) e Homebrew. ## Instalação Binários pré-compilados podem ser baixados da [página de Releases do GitHub](https://github.com/jpochyla/psst/releases/latest). ### Compilando a partir do Código Fonte Para compilar o Psst a partir do código fonte, você precisa da versão estável mais recente do Rust (pelo menos 1.65.0). #### Dependências Linux - **Debian/Ubuntu**: `sudo apt-get install libssl-dev libgtk-3-dev libcairo2-dev libasound2-dev` - **RHEL/Fedora**: `sudo dnf install openssl-devel gtk3-devel cairo-devel alsa-lib-devel` #### Comandos de Compilação ```shell cargo build # Adicione --release para uma compilação de lançamento. ``` Para executar a GUI: ```shell cargo run --bin psst-gui ``` Para criar um pacote de instalação (ex.: .app no macOS): ```shell cargo install cargo-bundle cargo bundle --release ``` ## Estrutura do Projeto - `/psst-core`: Biblioteca principal que gerencia sessões TCP do Spotify, obtenção de áudio, decodificação, saída e fila de reprodução. - `/psst-gui`: O aplicativo GUI construído com Druid. - `/psst-cli`: Uma ferramenta CLI de exemplo para reproduzir faixas. ## Roteiro O desenvolvimento atual foca em melhorar a estabilidade e adicionar recursos ausentes, como gerenciamento de playlists (seguir/deixar de seguir, adicionar/remover faixas), melhores mecanismos de cache, resiliência a erros de rede e pacotes de aplicativos específicos por sistema operacional. Melhorias futuras na interface incluem um layout de dois painéis, detecção de tema claro/escuro do sistema operacional e listas virtualizadas para melhor desempenho com bibliotecas grandes. ## Contribuindo Contribuições são bem-vindas. O projeto depende de esforços da comunidade para melhorar recursos e corrigir bugs. Para mais detalhes sobre a estrutura do código e diretrizes de contribuição, consulte a seção de desenvolvimento do repositório.