Atualização 2022
o ultrassom não é algo obsoleto, mas não tenho tanto tempo quanto gostaria para trabalhar em seu desenvolvimento. Pretendo voltar a isso no futuro, espero que você possa ter paciência comigo! Uma atualização importante que está por vir é sobre ultrasonics-api . Atualmente estou hospedando uma versão pública no nível gratuito do Heroku, que será encerrado no final de novembro de 2022, conforme anunciado em agosto. É necessário para qualquer serviço público de streaming (Spotify, Last.fm, etc).
Ainda não tenho nenhuma alternativa configurada, então, antes que esse momento chegue, recomendo que você configure sua própria instância ultrasonics-api junto com ultrasonics e chaves para quaisquer serviços on-line com os quais deseja sincronizar. As instruções estão todas disponíveis nesse repositório!
Visão geral
Instalação
sistema
Opção 1 (instalação manual)
Opção 2 (Docker)
Miniaplicativos
Entradas
Modificadores (opcional)
Resultados
Gatilhos
Plug-ins
Modo Playlists vs Modo Músicas
Contribuindo
Escrevendo seu próprio plugin
Melhorando o código-fonte ultrassônico
Bem-vindo ao ultrassom !
ultrasonics é uma ferramenta projetada para ajudá-lo a controlar sua biblioteca e listas de reprodução de música. Já se foram os dias em que suas playlists estavam espalhadas por três serviços diferentes ou em que você estava limitado a usar um serviço porque não tinha tempo para selecionar manualmente várias cópias da mesma playlist.
ultrasonics usa plug-ins para interagir com seus serviços favoritos. Isso significa que a funcionalidade pode ser adicionada simplesmente instalando um novo plugin. Cada plugin pode fornecer compatibilidade com um serviço, por exemplo, o plugin oficial do Spotify está vinculado a... bem, ao Spotify, é claro. Outros plug-ins fornecem funcionalidades adicionais, como mesclar playlists de mais de uma fonte.
A visão geral de todos os plugins incluídos pode ser encontrada em [documentação incompleta].
Para executar ultrassom você tem duas opções:
Baixe e execute ultrassom diretamente.
Extraia e execute a imagem oficial do Docker.
ultrassônico foi desenvolvido em Linux. Deve ser compatível com várias plataformas, mas não foi testado, então esteja preparado para bugs ou problemas no Windows/macOS!
Certifique-se de ter o Python 3 instalado
# Se este comando não funcionar, instale o Python 3callum em uluru em ~↪ python3 --version Pitão 3.8.2
Clone o repositório em um diretório de instalação, talvez /opt/ultrasonics
# Vá para o diretório de instalaçãocallum em uluru em ~↪ cd /opt# Clone este repocallum em uluru em /opt ↪ git clone https://github.com/XDGFX/ultrasonics# Certifique-se de ter a propriedade da pasta ultrassônica em uluru em /opt ↪ sudo chown -R callum:callum ultrasonics/
Crie um ambiente virtual e instale as dependências necessárias dentro dele.
# Vá para o diretório ultrassônicocallum em uluru em /opt ↪ cd ultrasonics# Crie um ambiente virtual na pasta '.venv'callum at uluru em /o/ultrasonics ↪ python3 -m venv .venv# Ative o ambiente.# Se você estiver usando um shell diferente, use activate.<shell># por exemplo, source .venv/bin/activate.fish for fish!callum at uluru in /o/ultrasonics ↪ source .venv/bin/activate# Certifique-se de que seu venv esteja ativo (veja o .venv no início da linha)# Instale o dependenciescallum do Python em uluru em /o/ultrasonics (.venv) ↪ instalação pip3 -r requisitos.txt
Execute app.py
# Com o venv ainda ativo, execute app.pycallum em uluru em /o/ultrasonics (.venv) ↪ python3 app.py
Se você deseja executar isso como um processo systemd, siga as etapas abaixo:
Copie o arquivo de serviço de exemplo para /etc/systemd/system/ultrasonics.service
sudo cp ultrasonics.service /etc/systemd/system/ultrasonics.service
Recarregue o daemon systemctl para obter o novo serviço
sudo systemctl daemon-reload
Habilite e inicie o serviço
sudo systemctl enable --now ultrassônico
Você pode verificar o status do processo usando:
ultrassom de status systemctl
A imagem ultrassônica oficial está localizada em xdgfx/ultrasonics. Você pode extraí-lo e executá-lo manualmente ou colá-lo em seu arquivo docker-compose.yml
.
versão: "3.7"serviços: ultrasonics:image: xdgfx/ultrasonicscontainer_name: ultrasonicsrestart: except-stoppedports: - 5000:5000 volumes: - /path/to/config:/config - /path/to/plugins:/plugins # Usado para ambiente de plugins de terceiros: - PUID=${PUID} - PGID=${PGID}
Se você já usou o IFTTT, já entende os fundamentos. a ultrassônica trabalha com o conceito de 'miniaplicativos'. Cada miniaplicativo que você cria contém plug-ins que se enquadram em uma das quatro categorias:
Esses plug-ins se conectam a um serviço para obter uma lista de músicas ou playlists e passam essa lista para os plug-ins Modificadores e Saída.
Esses plug-ins pegam uma lista de músicas ou playlists de um ou mais plug-ins de entrada e modificam a lista de alguma forma. Por exemplo, eles podem mesclar listas de reprodução duplicadas ou substituir as músicas por músicas semelhantes usando uma API de descoberta de música.
Esses plug-ins pegam a lista de playlists passadas para eles e os salvam em um serviço. Talvez eles atualizem ou criem suas playlists no Plex ou as salvem em um arquivo .m3u em seu servidor doméstico.
Esses plug-ins não fazem parte do fluxo de músicas/lista de reprodução, mas determinam quando o miniaplicativo realmente é executado. O gatilho mais simples é baseado no tempo, por exemplo, 'Executar uma vez a cada 6 horas'.
Você pode construir seus miniaplicativos personalizados usando os plug-ins instalados, salvá-los no banco de dados e então ele será executado automaticamente a partir de um plug-in Trigger ou executando manualmente o miniaplicativo na página inicial.
ultrasonics vem com vários plug-ins oficiais. Para obter mais informações, consulte [documentação incompleta].
Novos plugins podem ser instalados simplesmente copiando a pasta que contém o plugin para o diretório plugins
.
Cada miniaplicativo precisa de pelo menos um plugin de entrada e um plugin de saída. Para rodar automaticamente, ele também precisa de um plugin de gatilho.
A maioria dos plug-ins terá configurações para definir, que podem ser configurações persistentes globais (comuns para todas as instâncias do plug-in, em todos os seus miniaplicativos) ou específicas para esta instância do plug-in.
Você será solicitado a inserir as configurações necessárias ao criar seu miniaplicativo.
As configurações sempre podem ser deixadas em branco! Em alguns casos, isso é normal ou esperado, mas em outros casos pode resultar em erros de plug-in que podem exigir a correção manual do banco de dados ultrassônico! Certifique-se de preencher todas as configurações que você deveria!
Alguns plugins são projetados para funcionar com playlists - por exemplo, o plugin do Spotify interage com suas playlists do Spotify. Alguns plug-ins são projetados para funcionar com músicas, por exemplo, suas 100 melhores músicas no Last.fm.
Se um plugin funcionar apenas no modo músicas, um aviso será exibido na tela "selecionar plugin".
Adicionar um plug-in de modo de música a uma entrada funcionará efetivamente adicionando uma única lista de reprodução ao fluxo do miniaplicativo. Isso deve funcionar sem problemas, desde que o plugin em questão forneça um nome para esta lista de reprodução única.
Tentar alimentar várias listas de reprodução em um único plug-in de saída de modo de música provavelmente causará problemas, mas não é recomendado.
Então você quer ajudar a melhorar o ultrassom? Em primeiro lugar - obrigado! Como alguém que não é engenheiro de software, este é um dos maiores projetos em que trabalhei. Qualquer ajuda ou sugestão é muito apreciada!
Expandir a funcionalidade do ultrassom é fácil! Um plugin é uma instalação de arrastar e soltar e, portanto, pode melhorar muito o projeto com complexidade mínima. A melhor maneira de aprender é através do wiki. Você pode fazer um fork deste projeto ou criar seu próprio repositório especificamente para o seu plugin. Ele pode ser mantido separado ou, se você achar que seria benéfico para a comunidade torná-lo um plug-in padrão, avise-me por meio de um problema no GitHub!
Colocarei quaisquer planos futuros, problemas conhecidos ou melhorias gerais nos problemas. Dê também uma olhada nos quadros de projetos, que devem mostrar as questões de alta prioridade.
Ou, se você tiver uma ideia nova, experimente e me avise com uma solicitação ou problema! ?