Crie uma Skill Privada de Jukebox Alexa para MP3s Pessoais e Rádio pela Internet
De Wikiprompt, a enciclopédia livre de prompts
Crie uma Skill Privada de Jukebox Alexa para MP3s Pessoais e Rádio pela Internet Um prompt abrangente para criar uma skill Alexa privada que reproduz MP3s pessoais de um bucket na nuvem e rádio pela internet, com instruções detalhadas de configuração, construção e implantação.
Conteúdo do PromptSalvar
🌐
Construa-me uma skill privada da Alexa que toca minhas próprias músicas de um bucket na nuvem, além de rádio pela internet
Quero que meu Amazon Echo toque meus próprios MP3s em vez de ser forçado a usar Amazon Music ou Spotify. Construa uma skill privada da Alexa para isso. Faça o máximo possível você mesmo: use CLIs e APIs, implante e teste você mesmo, e só me peça coisas que apenas uma pessoa pode fazer (fazer login, clicar em Permitir, testar no Echo).
Configuração
- Minha música está em um bucket compatível com S3 (AWS S3 ou Cloudflare R2) sob um prefixo music/. Cada pasta dentro dele é um gênero/playlist (music/Coffee Jazz/) ou um artista/álbum (music/Artist/Album/).
- Vou criar uma chave de acesso para o bucket e fornecê-la a você. Mantenha-a em um arquivo de configuração e nunca a imprima. A skill só precisa de acesso de leitura; as ferramentas de upload precisam de acesso de escrita.
- Meu Echo e minha conta de desenvolvedor da Amazon usam o mesmo login da Amazon.
Construção
1. Uma skill personalizada hospedada na Alexa (Node.js) com nome de invocação "jukebox" (use duas palavras se a Amazon rejeitar uma) e a interface AudioPlayer habilitada.
2. Modelo de voz: um PlayIntent com um slot AMAZON.SearchQuery ("tocar {query}", "colocar {query}", "sintonizar {query}", "embaralhar {query}"), um ShuffleAllIntent, um WhatsPlayingIntent, um ListStationsIntent, e todos os intents integrados do AudioPlayer (pausar, retomar, próximo, anterior, loop ligado/desligado, embaralhar ligado/desligado, recomeçar).
3. Biblioteca: liste tudo sob music/ com ListObjectsV2 (siga o token de continuação), construa pastas a partir dos prefixos das chaves, mantenha apenas arquivos .mp3/.m4a/.aac, e armazene o resultado em cache por 5 minutos. Corresponda frases faladas a nomes de pastas e arquivos de forma flexível: ignore números de faixa e espaçamento ("ama piano" = amapiano), transforme palavras numéricas em dígitos ("thirteen beaches" = 13 Beaches), e trate aliases de gênero (dnb, drum n bass, hiphop, lo fi).
4. Reprodução: forneça à Alexa uma URL HTTPS pré-assinada de GET para cada arquivo. Torne-a válida por pelo menos 12 horas para que mixagens longas e pausa/retomada não expirem no meio da reprodução. Mantenha o bucket privado. Armazene a fila de reprodução no token do AudioPlayer (pasta, semente de embaralhamento, posição) para que não haja banco de dados, e coloque a próxima faixa na fila em PlaybackNearlyFinished. Pastas embaralham e fazem loop. Uma pasta cujos arquivos todos começam com números de faixa é um álbum e toca em ordem. Uma única música continua com o resto de sua pasta.
5. Rádio: uma lista de estações com streams HTTPS de MP3/AAC/HLS, com boas estações eletrônicas underground (Rinse FM, NTS, Bassdrive, Intergalactic FM, Kiosk Radio, Refuge Worldwide, e outras) além de notícias (BBC World Service, NPR). Teste cada URL com curl primeiro e descarte as de HTTP simples, porque a Alexa as recusa. Suporte "tocar rinse fm", "rádio drum and bass", "rádio techno" e "as notícias", e faça próximo/anterior alternarem estações. Streams ao vivo caem e a Alexa trata uma queda como fim, então re-enfileire o mesmo stream com um novo token em PlaybackNearlyFinished, e tente novamente uma vez em PlaybackFailed.
6. Registre uma linha por solicitação (tipo, intent, token, offset, erro) para que problemas de reprodução apareçam no CloudWatch.
Implante sem o console web
- Instale o ASK CLI (npm i -g ask-cli). Se ask configure não funcionar no seu shell, execute ask util generate-lwa-tokens --no-browser, peça para eu colar o código de uso único, e escreva ~/.ask/cli_config você mesmo. Obtenha o ID do fornecedor de GET https://t.co/8eS787CaBt.
- O código da skill hospedada é um repositório git (encontre-o com ask smapi get-alexa-hosted-skill-metadata). Envie para master para implantar, com ask util git-credentials-helper como o auxiliar de credenciais do git. O auxiliar precisa de ask-resources.json e .ask/ask-states.json ao lado do repositório. Se os envios começarem a falhar com 403, limpe a credencial em cache do chaveiro do macOS.
- O runtime hospedado pode executar uma versão antiga do Node, então fixe uma versão do SDK S3 que a suporte, ou assine URLs com uma pequena biblioteca SigV4.
- Envie o modelo de voz com ask smapi set-interaction-model, verifique se o manifesto da skill lista AUDIO_PLAYER, e teste com ask smapi simulate-skill. O simulador do console web não pode reproduzir áudio, então um erro de "problema com a resposta da skill solicitada" lá é esperado.
Quando funcionar, diga-me como adicionar rotinas no aplicativo Alexa (Quando: voz "coffee jazz" → Ação: Personalizado "pedir ao jukebox para tocar coffee jazz") para que eu possa apenas dizer "Alexa, coffee jazz". E como tocar estações de rádio pela internet que eu gosto.
Entre para ver o prompt completo
Continuar com:
Ao entrar, você concorda com nossos Termos de uso e Política de privacidade
Uso
Este prompt foi projetado para uso com coding. Copie o conteúdo acima e cole na sua ferramenta de IA preferida.
Para melhores resultados, personalize os marcadores (indicados por colchetes ou maiúsculas) com seus requisitos específicos.
Referências
- Categoria: Prompts de coding
- Fonte: https://x.com/levelsio/status/2112624509714849840
Discussão
0 comentários