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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.