토론

개인 MP3 및 인터넷 라디오를 위한 프라이빗 알렉사 주크박스 스킬 구축하기

Wikiprompt, 무료 프롬프트 백과사전에서

@levelsio

2026년 10월 20일

개인 MP3 및 인터넷 라디오를 위한 프라이빗 알렉사 주크박스 스킬 구축하기 개인용 알렉사 스킬을 구축하기 위한 종합적인 프롬프트로, 클라우드 버킷에서 개인 MP3 파일과 인터넷 라디오를 재생하며, 상세한 설정, 빌드, 배포 지침을 포함합니다.

프롬프트 내용저장

🌐
개인 Alexa 스킬을 만들어서 클라우드 버킷에서 내 음악을 재생하고, 인터넷 라디오도 재생해 줘 Amazon Music이나 Spotify를 강제로 사용하지 않고 내 Amazon Echo에서 내 MP3를 재생하고 싶어. 이를 위한 개인 Alexa 스킬을 만들어 줘. 가능한 한 스스로 처리해 줘: CLI와 API를 사용하고, 직접 배포하고 테스트하고, 로그인, Allow 클릭, Echo에서 테스트처럼 사람만 할 수 있는 일만 나에게 요청해. 설정 - 내 음악은 S3 호환 버킷(AWS S3 또는 Cloudflare R2)에 music/ 접두사 아래에 있어. 각 폴더는 장르/플레이리스트(music/Coffee Jazz/) 또는 아티스트/앨범(music/Artist/Album/)이야. - 버킷용 액세스 키를 만들고 너에게 줄게. 설정 파일에 보관하고 절대 출력하지 마. 스킬은 읽기 권한만 필요하고, 업로드 도구는 쓰기 권한이 필요해. - 내 Echo와 내 Amazon 개발자 계정은 같은 Amazon 로그인을 사용해. 빌드 1. Alexa 호스팅(Node.js) 커스텀 스킬, 호출 이름은 "jukebox"(Amazon이 한 단어를 거부하면 두 단어로 사용)이고 AudioPlayer 인터페이스가 활성화되어 있어. 2. 음성 모델: AMAZON.SearchQuery 슬롯이 있는 PlayIntent("play {query}", "put on {query}", "tune in to {query}", "shuffle {query}"), ShuffleAllIntent, WhatsPlayingIntent, ListStationsIntent, 그리고 모든 기본 제공 AudioPlayer 인텐트(일시 정지, 재개, 다음, 이전, 반복 켜기/끄기, 셔플 켜기/끄기, 처음부터 다시)가 있어. 3. 라이브러리: ListObjectsV2로 music/ 아래의 모든 항목을 나열하고(연속 토큰을 따름), 키 접두사에서 폴더를 만들고, .mp3/.m4a/.aac 파일만 유지하고, 결과를 5분 동안 캐시해. 음성 구문을 폴더 및 파일 이름에 느슨하게 매칭해: 트랙 번호와 공백은 무시하고("ama piano" = amapiano), 숫자 단어를 숫자로 변환하고("thirteen beaches" = 13 Beaches), 장르 별칭을 처리해(dnb, drum n bass, hiphop, lo fi). 4. 재생: 각 파일에 대해 사전 서명된 HTTPS GET URL을 Alexa에 제공해. 긴 믹스와 일시 정지/재개가 재생 중에 만료되지 않도록 최소 12시간 동안 유효하게 해. 버킷을 비공개로 유지해. 재생 큐를 AudioPlayer 토큰(폴더, 셔플 시드, 위치)에 저장해서 데이터베이스가 없게 하고, PlaybackNearlyFinished에서 다음 트랙을 큐에 넣어. 폴더는 셔플 및 반복돼. 모든 파일이 트랙 번호로 시작하는 폴더는 앨범이며 순서대로 재생돼. 단일 곡은 해당 폴더의 나머지 곡으로 이어져. 5. 라디오: HTTPS MP3/AAC/HLS 스트림의 방송국 목록, 좋은 언더그라운드 일렉트로닉 방송국(Rinse FM, NTS, Bassdrive, Intergalactic FM, Kiosk Radio, Refuge Worldwide 등)과 뉴스(BBC World Service, NPR)를 포함해. 먼저 curl로 모든 URL을 테스트하고 일반 HTTP 것은 제거해, Alexa가 거부하니까. "play rinse fm", "drum and bass radio", "techno radio", "the news"를 지원하고, 다음/이전이 방송국을 전환하게 해. 라이브 스트림은 끊기고 Alexa는 끊김을 종료로 처리하므로, PlaybackNearlyFinished에서 새 토큰으로 같은 스트림을 다시 큐에 넣고, PlaybackFailed에서 한 번 재시도해. 6. 요청당 한 줄을 기록해(유형, 인텐트, 토큰, 오프셋, 오류) 재생 문제가 CloudWatch에 표시되게 해. 웹 콘솔 없이 배포 - ASK CLI를 설치해(npm i -g ask-cli). ask configure가 셸에서 작동하지 않으면 ask util generate-lwa-tokens --no-browser를 실행하고, 일회용 코드를 붙여넣게 하고, ~/.ask/cli_config를 직접 작성해. GET https://t.co/8eS787CaBt에서 공급업체 ID를 가져와. - 호스팅 스킬의 코드는 git 저장소야(ask smapi get-alexa-hosted-skill-metadata로 찾아). master로 푸시하여 배포하고, git 자격 증명 도우미로 ask util git-credentials-helper를 사용해. 도우미는 저장소 옆에 ask-resources.json과 .ask/ask-states.json이 필요해. 푸시가 403으로 실패하기 시작하면 캐시된 macOS 키체인 자격 증명을 지워. - 호스팅 런타임은 오래된 Node 버전을 실행할 수 있으므로, 이를 지원하는 S3 SDK 버전을 고정하거나 작은 SigV4 라이브러리로 URL에 서명해. - ask smapi set-interaction-model로 음성 모델을 업로드하고, 스킬 매니페스트에 AUDIO_PLAYER가 나열되어 있는지 확인하고, ask smapi simulate-skill로 테스트해. 웹 콘솔의 시뮬레이터는 오디오를 재생할 수 없으므로, 거기서 "problem with the requested skill's response" 오류가 나오는 것은 예상된 일이야. 작동하면, Alexa 앱 루틴을 추가하는 방법을 알려 줘(When: voice "coffee jazz" → Action: Customized "ask jukebox to play coffee jazz") 그래서 그냥 "Alexa, coffee jazz"라고 말할 수 있게. 그리고 내가 좋아하는 인터넷 라디오 방송국을 재생하는 방법도 알려 줘.

전체 프롬프트를 보려면 로그인하세요

Continue with:

By logging in, you agree to our Terms of Use and Privacy Policy

사용법

이 프롬프트는 coding와 함께 사용하도록 설계되었습니다. 위의 프롬프트 내용을 복사하여 원하는 AI 도구에 붙여넣으세요.

최상의 결과를 얻으려면 자리 표시자(대괄호 또는 대문자로 표시)를 특정 요구 사항으로 사용자 지정할 수 있습니다.

참고 자료

분류:coding| twitter| alexa-skill| music-player

토론