MarvinB 3 Posted May 22 Posted May 22 Hello everyone, I have developed an Alexa Skill that works with Emby called Ear Wax and I am looking for a few beta testers. 5 people would be great In a nutshell, you give me your email address, I put you in the Amazon/Alexa beta test group, you get an email from Amazon allowing you use the full feature product until June 30th 2026. I will also give you a users guide that will get you up and running in no time. Some features; Single sentence Alexa command.. Alexa ask Ear Wax to play some music.... random mix Play queue windowing functionality .. possible endless playback. Select by album, by artist, by genre and more Please let me know... time is running out.. operators standing by.. A great father's day gift and christmas is right around the corner... TIA
MarvinB 3 Posted May 24 Author Posted May 24 Ear Wax has become my daily driver for music Emby -> Amazon Dot!! Sign up for beta...
ginjaninja 608 Posted 19 hours ago Posted 19 hours ago 2 hours ago, OllieCox said: Is the Ear Wax Skill still working and available? Working for me...
ginjaninja 608 Posted 6 hours ago Posted 6 hours ago • Open Ear Wax successfully. Yes. have to carefully annunciate "ear wax" and not let it slip into "earwax" - but thats just Alexa. its more reliable than "M B Home" for me. Alexa needs such an unnatural pause between syllables (words). Alexa thinks Amazon music is intended 1/20 thats just alexa. Anything that can be done to keep in the ear wax skill open once started for as long as possible so the skill does not need to be reinvoked would be a god send. Could Ear Wax be registered as an actual Alexa music service (like amazon music.spotify) and and could that improve interaction? To get your Alexa skill to appear in the native "Link New Services" list inside the Alexa app's Music & Podcasts settings, your skill must be officially certified and published using the Amazon Music Skill API.Standard custom skills (even those that stream audio) only appear in the general "Skills & Games" store. Only skills built strictly as native music providers can occupy a slot in the dedicated native services menu. FWIW i cant "ask ear wax" on my android phone alexa client • Play random music using “select some tunes.” "Alexa, ask Ear Wax to play some music" works... • Play at least three music families: Jazz, Pop, and Rock. OK • Play at least three artists, including one multi-word artist name. Command "Alexa, ask ear wax to play Artist questionmark and the mysterians" (this search would return no results as the artist is '? and the mysterians'**) response "There was a problem with the requested skills response" log 2026-06-06 10:04:53.457 Debug ItemsService-0HNM3H17K1E1F:00000001: http/1.1 GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=question mark and the mysterians&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. Source Ip: 54.217.47.94, UserAgent: 2026-06-06 10:04:58.732 Info SqliteItemRepository: Interrupt query due to cancellation. 2026-06-06 10:04:58.732 Debug App: Sqlite: 9 - statement aborts at 0: interrupted; [] 2026-06-06 10:04:58.732 Debug App: Sqlite: 9 - statement aborts at 5: interrupted; [SELECT rowid, rank FROM 'main'.'fts_search9' ORDER BY bm25("fts_search9") ASC] 2026-06-06 10:04:58.732 Debug App: Sqlite: 9 - statement aborts at 54: interrupted; [with WithAncestors AS (SELECT itemid FROM AncestorIds2 WHERE AncestorId=57475 ),WithItemLinkItemIds AS (select ItemLinks2.LinkedId From ItemLinks2 join withancestors on withancestors.itemid=itemlinks2.itemid where ItemLinks2.Type in (0,1,5))select A.Id,A.Name,A.RunTimeTicks,A.Images,UserDatas.IsFavorite from mediaitems A join fts_search9 on A.Id=fts_search9.RowId and fts_search9 match @SearchTerm left join UserDatas on A.UserDataKeyId=UserDatas.UserDataKeyId And UserDatas.UserId=17 where A.Type=13 AND A.Id in WithItemLinkItemIds ORDER BY Rank ASC] 2026-06-06 10:04:58.733 Info ItemsService-0HNM3H17K1E1F:00000001: http/1.1 Response completed after client disconnected to 54.217.47.94. Time: 5275ms. GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=question mark and the mysterians&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. 2026-06-06 10:04:58.765 Debug ItemsService-0HNM3H17K1E1G:00000001: http/1.1 GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=question mark mysterians&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. Source Ip: 54.217.47.94, UserAgent: 2026-06-06 10:05:01.185 Info SqliteItemRepository: Interrupt query due to cancellation. 2026-06-06 10:05:01.185 Debug App: Sqlite: 9 - statement aborts at 0: interrupted; [] 2026-06-06 10:05:01.185 Debug App: Sqlite: 9 - statement aborts at 5: interrupted; [SELECT rowid, rank FROM 'main'.'fts_search9' ORDER BY bm25("fts_search9") ASC] 2026-06-06 10:05:01.185 Debug App: Sqlite: 9 - statement aborts at 54: interrupted; [with WithAncestors AS (SELECT itemid FROM AncestorIds2 WHERE AncestorId=57475 ),WithItemLinkItemIds AS (select ItemLinks2.LinkedId From ItemLinks2 join withancestors on withancestors.itemid=itemlinks2.itemid where ItemLinks2.Type in (0,1,5))select A.Id,A.Name,A.RunTimeTicks,A.Images,UserDatas.IsFavorite from mediaitems A join fts_search9 on A.Id=fts_search9.RowId and fts_search9 match @SearchTerm left join UserDatas on A.UserDataKeyId=UserDatas.UserDataKeyId And UserDatas.UserId=17 where A.Type=13 AND A.Id in WithItemLinkItemIds ORDER BY Rank ASC] 2026-06-06 10:05:01.186 Info ItemsService-0HNM3H17K1E1G:00000001: http/1.1 Response completed after client disconnected to 54.217.47.94. Time: 2421ms. GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=question mark mysterians&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. Command Alexa ask ear wax to play artist this artist does not exist response The requested media artist this artist does not exist cannot be found in your library (correct**, so what made questionmark and the mysterians fall over so badly) Command Alexa ask ear wax to play artist mysterians Response Playing Artist ....and the mysterians (the question mark is not vocalised, perhaps a necessary evil for punctuation) Command "Alexa ask ear wax play artist megan thee stallion" (This artist/content does exist see below) "The request media megan thee stallion could not be found in the library" (the m b home skill finds and plays) 2026-06-06 10:23:04.493 Debug ItemsService-0HNM3H17K1E47:00000001: http/1.1 GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=megan thee stallion&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. Source Ip: 54.217.47.94, UserAgent: 2026-06-06 10:23:07.844 Debug SqliteItemRepository: ItemsService.GetItems.GetItems query time (slow 6x): 3350ms. Query: with WithAncestors AS (SELECT itemid FROM AncestorIds2 WHERE AncestorId=57475 ),WithItemLinkItemIds AS (select ItemLinks2.LinkedId From ItemLinks2 join withancestors on withancestors.itemid=itemlinks2.itemid where ItemLinks2.Type in (0,1,5))select A.Id,A.Name,A.RunTimeTicks,A.Images,UserDatas.IsFavorite from mediaitems A join fts_search9 on A.Id=fts_search9.RowId and fts_search9 match @SearchTerm left join UserDatas on A.UserDataKeyId=UserDatas.UserDataKeyId And UserDatas.UserId=17 where A.Type=13 AND A.Id in WithItemLinkItemIds ORDER BY Rank ASC 2026-06-06 10:23:07.845 Debug ItemsService-0HNM3H17K1E47:00000001: http/1.1 Response 200 to 54.217.47.94. Time: 3352ms. GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=megan thee stallion&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. 2026-06-06 10:23:07.891 Debug ItemsService-0HNM3H17K1E48:00000001: http/1.1 GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=Audio&ArtistIds=360177&SortBy=Album,SortName&UserId=ba605147d56742b1b91f1e90f91db45c&Fields=Album,AlbumId,Artists,ArtistItems,BitRate,Container&api_key=c8c89131fa594134b37205e7dcd8c7e0&Limit=2. Source Ip: 54.217.47.94, UserAgent: 2026-06-06 10:23:08.016 Debug SqliteItemRepository: GetitemById Folder 372792 \\x99\x99a\Music\Compilations\Now That’s What I Call Music!\Now That's What I Call Music! 107 2026-06-06 10:23:08.016 Debug SqliteItemRepository: GetitemById MusicAlbum 360126 Now That's What I Call Music! 107 2026-06-06 10:23:08.016 Debug ItemsService-0HNM3H17K1E48:00000001: http/1.1 Response 200 to 54.217.47.94. Time: 125ms. GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=Audio&ArtistIds=360177&SortBy=Album,SortName&UserId=ba605147d56742b1b91f1e90f91db45c&Fields=Album,AlbumId,Artists,ArtistItems,BitRate,Container&api_key=c8c89131fa594134b37205e7dcd8c7e0&Limit=2. { "Items": [ { "Name": "Megan Thee Stallion", "ServerId": "fccaa6f897f140dbb689938224ae1938", "Id": "360177", "RunTimeTicks": 1626122450, "IsFolder": true, "Type": "MusicArtist", "UserData": { "PlaybackPositionTicks": 0, "PlayCount": 0, "IsFavorite": false, "Played": false }, "ImageTags": { "Primary": "ea20074abe4ab4d4058b6a4ff6559e61_638544064451567131", "Logo": "03a84d0a88975ad45308ae0e2ec48459_638544064452348432" }, "BackdropImageTags": [ "51b2968fefc69d03c21ae631404a31a7_638544064453129670" ] }, { "Name": "Martine Theeuwen", "ServerId": "fccaa6f897f140dbb689938224ae1938", "Id": "263642", "RunTimeTicks": 11626318250, "IsFolder": true, "Type": "MusicArtist", "UserData": { "PlaybackPositionTicks": 0, "PlayCount": 0, "IsFavorite": false, "Played": false }, "ImageTags": { "Primary": "c3f6ca75e4ac1e61ee175ed2f99d9d8f_638096971922533177" }, "BackdropImageTags": [] }, { "Name": "Thee Maddkatt Courtship", "ServerId": "fccaa6f897f140dbb689938224ae1938", "Id": "275852", "RunTimeTicks": 2792681280, "IsFolder": true, "Type": "MusicArtist", "UserData": { "PlaybackPositionTicks": 0, "PlayCount": 0, "IsFavorite": false, "Played": false }, "ImageTags": {}, "BackdropImageTags": [] }, { "Name": "Megan Washington", "ServerId": "fccaa6f897f140dbb689938224ae1938", "Id": "370728", "RunTimeTicks": 2167379590, "IsFolder": true, "Type": "MusicArtist", "UserData": { "PlaybackPositionTicks": 0, "PlayCount": 0, "IsFavorite": false, "Played": false }, "ImageTags": { "Primary": "875da71750f9a82b4e3ade49d1085b48_638029154795437655", "Logo": "54d980669f6eb89c656e39dd853a1324_638096591208724801" }, "BackdropImageTags": [ "79ddf5aea2d039cd8d7cc122f56f9145_638096591209173756" ] } ], "TotalRecordCount": 4 } { "Items": [ { "Name": "WAP", "ServerId": "fccaa6f897f140dbb689938224ae1938", "Id": "375219", "Container": "mp3", "RunTimeTicks": 1626122450, "Bitrate": 320561, "IndexNumber": 22, "ParentIndexNumber": 2, "IsFolder": false, "Type": "Audio", "ParentLogoItemId": "255358", "ParentBackdropItemId": "255358", "ParentBackdropImageTags": [ "8e00f160bb7fdab56619d2d4f222f4fa_637480562752644916" ], "UserData": { "PlaybackPositionTicks": 0, "PlayCount": 0, "IsFavorite": false, "Played": false }, "Artists": [ "Cardi B", "Megan Thee Stallion" ], "ArtistItems": [ { "Name": "Cardi B", "Id": "264892" }, { "Name": "Megan Thee Stallion", "Id": "360177" } ], "Composers": [ { "Name": "Ayo the Producer", "Id": "360178" }, { "Name": "Cardi B", "Id": "264892" }, { "Name": "James Foye III", "Id": "360179" }, { "Name": "Megan Thee Stallion", "Id": "360177" }, { "Name": "Frank Ski", "Id": "360180" }, { "Name": "Jordan Thorpe", "Id": "360181" } ], "Album": "Now That's What I Call Music! 107", "AlbumId": "360126", "AlbumPrimaryImageTag": "b640136aad23a8d7eca9954f676c359f_638543355285764869", "AlbumArtist": "Various Artists", "AlbumArtists": [ { "Name": "Various Artists", "Id": "255358" } ], "ImageTags": {}, "BackdropImageTags": [], "ParentLogoImageTag": "07254a8b3bbed77d97558f25a72c8432_637475500989578660", "MediaType": "Audio" } ], "TotalRecordCount": 1 } Log for m b home skill (note the ancestor id 57475 is the location of the artist/content...300966 is audiobooks). 2026-06-06 11:04:01.893 Debug ItemsService-0HNM3H17K1E8L:00000002: http/1.1 GET https://xxx.xxx.xxx/emby/Users/6cc6d0fa039849af8147592f5da46188/Items?api_key=ae701068aab94a97abb7dee7f6045cfd&Fields=Id&SortBy=SortName&IncludeItemTypes=MusicArtist&Recursive=true&SearchTerm=Megan thee stallion&Limit=1&EnableTotalRecordCount=false&EnableImages=false&EnableUserData=false. Source Ip: 3.216.94.180, UserAgent: node-fetch/1.0 (+https://github.com/bitinn/node-fetch) 2026-06-06 11:04:06.219 Debug SqliteItemRepository: ItemsService.GetItems.GetItemList query time (slow 6x): 4325ms. Query: with WithAncestors AS (SELECT itemid FROM AncestorIds2 WHERE AncestorId in (57475,300966) ),WithItemLinkItemIds AS (select ItemLinks2.LinkedId From ItemLinks2 join withancestors on withancestors.itemid=itemlinks2.itemid where ItemLinks2.Type in (0,1,5))select A.Id,A.Name,A.RunTimeTicks from mediaitems A join fts_search9 on A.Id=fts_search9.RowId and fts_search9 match @SearchTerm where A.Type=13 AND A.Id in WithItemLinkItemIds ORDER BY Rank ASC LIMIT 1 2026-06-06 11:04:06.219 Debug ItemsService-0HNM3H17K1E8L:00000002: http/1.1 Response 200 to 3.216.94.180. Time: 4326ms. GET https://xxx.xxx.xxx/emby/Users/6cc6d0fa039849af8147592f5da46188/Items?api_key=ae701068aab94a97abb7dee7f6045cfd&Fields=Id&SortBy=SortName&IncludeItemTypes=MusicArtist&Recursive=true&SearchTerm=Megan thee stallion&Limit=1&EnableTotalRecordCount=false&EnableImages=false&EnableUserData=false. 2026-06-06 11:04:06.303 Debug ItemsService-0HNM3H17K1E8L:00000003: http/1.1 GET https://xxx.xxx.xxx/emby/Users/6cc6d0fa039849af8147592f5da46188/Items?api_key=ae701068aab94a97abb7dee7f6045cfd&Fields=Id,Name,AlbumArtist,MediaType&SortBy=SortName&IncludeItemTypes=Audio&Recursive=true&ArtistIds=360177&ParentId=&SearchTerm=&IsFavorite=&Limit=400&EnableTotalRecordCount=false&EnableImages=false&EnableUserData=false. Source Ip: 3.216.94.180, UserAgent: node-fetch/1.0 (+https://github.com/bitinn/node-fetch) 2026-06-06 11:04:06.442 Debug ItemsService-0HNM3H17K1E8L:00000003: http/1.1 Response 200 to 3.216.94.180. Time: 139ms. GET https://xxx.xxx.xxx/emby/Users/6cc6d0fa039849af8147592f5da46188/Items?api_key=ae701068aab94a97abb7dee7f6045cfd&Fields=Id,Name,AlbumArtist,MediaType&SortBy=SortName&IncludeItemTypes=Audio&Recursive=true&ArtistIds=360177&ParentId=&SearchTerm=&IsFavorite=&Limit=400&EnableTotalRecordCount=false&EnableImages=false&EnableUserData=false. 2026-06-06 11:04:07.586 Info UniversalAudioService-0HNM3H17K1E8M:00000001: http/1.1 GET https://xxx.xxx.xxx/emby/Audio/375219/universal?api_key=ae701068aab94a97abb7dee7f6045cfd&DeviceId=0fe9d3f28b5c0248f0a15e0018033f22&StartTimeTicks=0&MaxStreamingBitrate=384000&Container=mp3|mp3,m4a|aac,mp4|aac&TranscodingContainer=aac&TranscodingProtocol=http&AudioCodec=aac&MaxAudioSampleRate=48000&MaxAudioBitDepth=16. Source Ip: 192.168.4.2, Accept=*/*, Host=xxx.xxx.xxx, User-Agent=Echo/1.0(APNG), UniqueIdentifier=55443, Icy-MetaData=1 2026-06-06 11:04:07.587 Debug UniversalAudioService-0HNM3H17K1E8M:00000001: GetPostedPlaybackInfo request: {"Id":"375219","MaxStreamingBitrate":384000,"StartTimeTicks":0,"DeviceProfile":{"SupportedMediaTypes":"Audio,Photo,Video","MaxStreamingBitrate":8000000,"MusicStreamingTranscodingBitrate":256000,"DeclaredFeatures":[],"DirectPlayProfiles":[{"Container":"mp3","AudioCodec":"mp3","Type":"Audio"},{"Container":"m4a","AudioCodec":"aac","Type":"Audio"},{"Container":"mp4","AudioCodec":"aac","Type":"Audio"}],"TranscodingProfiles":[{"Container":"aac","Type":"Audio","AudioCodec":"aac","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false,"AllowInterlacedVideoStreamCopy":false,"MaxManifestSubtitles":0,"MaxWidth":0,"MaxHeight":0,"FillEmptySubtitleSegments":false}],"ContainerProfiles":[],"CodecProfiles":[{"Type":"Audio","Conditions":[{"Condition":"LessThanEqual","Property":"AudioSampleRate","Value":"48000","IsRequired":false},{"Condition":"LessThanEqual","Property":"AudioBitDepth","Value":"16","IsRequired":false}],"ApplyConditions":[],"Container":"mp3|mp3,m4a|aac,mp4|aac"}],"ResponseProfiles":[],"SubtitleProfiles":[]},"EnableDirectPlay":true,"EnableDirectStream":true,"EnableTranscoding":true,"AllowInterlacedVideoStreamCopy":false,"AllowVideoStreamCopy":true,"AllowAudioStreamCopy":true,"IsPlayback":true,"AutoOpenLiveStream":false} 2026-06-06 11:04:07.587 Info UniversalAudioService-0HNM3H17K1E8M:00000001: GetPostedPlaybackInfo request. IsPlayback: true, isInLocalNetwork: True 2026-06-06 11:04:07.587 Debug SqliteItemRepository: GetitemById Audio 375219 \\x99\x99a\Music\Compilations\Now That’s What I Call Music!\Now That's What I Call Music! 107\D2_22. WAP - Cardi B feat. Megan Thee Stallion.mp3 2026-06-06 11:04:07.588 Info UniversalAudioService-0HNM3H17K1E8M:00000001: User policy for Cartman. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True EnableTranscodingQuality: True 2026-06-06 11:04:07.588 Info SessionManager: Setting _lastPlaySessionId for session 22f708ea5948df5d065485a3733997fc to baaa59d0c22e446d907da54fa075a5b8 2026-06-06 11:04:07.588 Debug SqliteItemRepository: GetitemById Audio 375219 \\x99\x99a\Music\Compilations\Now That’s What I Call Music!\Now That's What I Call Music! 107\D2_22. WAP - Cardi B feat. Megan Thee Stallion.mp3 2026-06-06 11:04:11.734 Info SessionsService-0HNM3H17K1E8N:00000001: http/1.1 POST https://xxx.xxx.xxx/emby/Sessions/Capabilities/Full?api_key=ae701068aab94a97abb7dee7f6045cfd&Id=22f708ea5948df5d065485a3733997fc. Source Ip: 3.216.94.180, UserAgent: node-fetch/1.0 (+https://github.com/bitinn/node-fetch) 2026-06-06 11:04:11.736 Debug AuthenticationRepository: UpdateCapabilities id: 188 2026-06-06 11:04:11.736 Info SessionsService-0HNM3H17K1E8N:00000001: http/1.1 Response 204 to 3.216.94.180. Time: 2ms. POST https://xxx.xxx.xxx/emby/Sessions/Capabilities/Full?api_key=ae701068aab94a97abb7dee7f6045cfd&Id=22f708ea5948df5d065485a3733997fc. 2026-06-06 11:04:28.526 Info SessionManager: PlaySession 66c7c2b6d6d7493ca78da01384778022 has gone idle while playing So falling over for some artists (or some content of artists). • Play at least two albums. Fine. • Play at least two playlists, including one multi-word playlist name. Fine. • Ask “what is playing” after a song starts. Fine. • Skip to the next song. Fine @MarvinBas a point of learning/awareness, do you know why the Alexa ecosystem supports "Alexa, Next" whilst playing an [ear wax] playlist, but not "Alexa, what is playing" and instead you have to go 'back to the beginning' and say "Alexa, Ask Ear Wax What is Playing". Do simple commands like 'next' get downloaded and cached in memory? • Stop playback. Fine
ginjaninja 608 Posted 6 hours ago Posted 6 hours ago i dont think its possible to play tracks....."Ask ear wax to play song|track songname" would be nice. this is how emby does it. 2026-06-06 11:15:55.466 Debug ItemsService-0HNM3H17K1E96:00000002: http/1.1 Response 200 to 3.216.94.180. Time: 3ms. GET https://xxx.xxx.xxx/emby/Users/6cc6d0fa039849af8147592f5da46188/Items?api_key=ae701068aab94a97abb7dee7f6045cfd&Fields=Id,Name,AlbumArtist,MediaType&SortBy=SortName&IncludeItemTypes=Audio&Recursive=true&ArtistIds=&ParentId=&SearchTerm=WAP&IsFavorite=&Limit=400&EnableTotalRecordCount=false&EnableImages=false&EnableUserData=false. Adding shuffle to playlists would be great. Emby does with by interfchanging play keyword with shuffle keyword....eg Alexa ask ear wax shuffle the playlist car But given that Ear Wax seems to have tighter control over the ongoing session as shown by "what is playing" could the command be issued after playback has started as well? Eg Alexa Ask Ear Wax play Album American Beauty. and then "Alexa [ask ear wax] shuffle" OR "Alexa [ask ear wax] shuffle loop" (and ear operates on the current queue)
MarvinB 3 Posted 5 hours ago Author Posted 5 hours ago (edited) @ginjaninjayou can play a single track. Request a specific track by a specific artist. Alexa, Ask Ear Wax to play song X by X Alexa, Ask Ear Wax to play track X by X I dont understand the purpose of shuffling a user defined list of tracks, the main purpose of the list of tracks, in the order you want to play them. Now you want to shuffle them, you could, just open the playlist and move tracks around. What order would Ear Wax be shuffling a playlist in? Help me understand Alexa Ask Ear Wax to Shuffle Album American Beauty Alexa Ask Ear Wax to repeat queue X times.. Where X <= 10 Alexa Ask Ear Wax to repeat track X times.. Where X <= 10 Alexa Tell Ear Wax repeat off The answer to your question of why the Alexa ecosystem supports "Alexa, Next... I dont know.. I am still scratching my head over that one. This is interesting; FWIW i cant "ask ear wax" on my android phone alexa client This works on my android phone and my Sony wireless headsets and another beta testers Denon alexa enabled/inside speakers Regarding , Alexa ask ear wax play artist megan thee stallion, please try it again Regarding, shuffling the current queue, if you haven't heard/played the entire queue, how do you know it was shuffled? My last question, do you actually say Open Ear Wax? if so, why? Edited 5 hours ago by MarvinB
MarvinB 3 Posted 4 hours ago Author Posted 4 hours ago @ginjaninja Please try the artist ? and the mysterians again.. Thanks
ginjaninja 608 Posted 4 hours ago Posted 4 hours ago 19 minutes ago, MarvinB said: you can play a single track. I missed this one. Yes i can play tracks. I wonder the value of making artist mandatory?.sometimes it nice to hear covers you were not expecting. I do think it would be great if tracks where artist and albumartist match take highest priority (as a very rough approximation for a studio album unless emby introduces support for this schema in future). noted regarding repeat My use case for shuffling playlists is i have a 1000 track playlist which is not ordered to any purpose, its a collection of tracks i shuffle randomly in the car. Hearing it from the beginning every time is not its intention. "open ear wax" was a mistake on my part. Command Alexa ask ear wax play artist questionmark and the mysterians Response There was a problem with the requested skills response Log 2026-06-06 12:44:31.641 Debug ItemsService-0HNM3N47R8UP4:00000001: http/1.1 GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=question mark and the mysterians&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. Source Ip: 54.195.177.241, UserAgent: 2026-06-06 12:44:37.116 Info SqliteItemRepository: Interrupt query due to cancellation. 2026-06-06 12:44:37.116 Debug App: Sqlite: 9 - statement aborts at 0: interrupted; [] 2026-06-06 12:44:37.116 Debug App: Sqlite: 9 - statement aborts at 5: interrupted; [SELECT rowid, rank FROM 'main'.'fts_search9' ORDER BY bm25("fts_search9") ASC] 2026-06-06 12:44:37.116 Debug App: Sqlite: 9 - statement aborts at 54: interrupted; [with WithAncestors AS (SELECT itemid FROM AncestorIds2 WHERE AncestorId=57475 ),WithItemLinkItemIds AS (select ItemLinks2.LinkedId From ItemLinks2 join withancestors on withancestors.itemid=itemlinks2.itemid where ItemLinks2.Type in (0,1,5))select A.Id,A.Name,A.RunTimeTicks,A.Images,UserDatas.IsFavorite from mediaitems A join fts_search9 on A.Id=fts_search9.RowId and fts_search9 match @SearchTerm left join UserDatas on A.UserDataKeyId=UserDatas.UserDataKeyId And UserDatas.UserId=17 where A.Type=13 AND A.Id in WithItemLinkItemIds ORDER BY Rank ASC] 2026-06-06 12:44:37.117 Info ItemsService-0HNM3N47R8UP4:00000001: http/1.1 Response completed after client disconnected to 54.195.177.241. Time: 5476ms. GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=question mark and the mysterians&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. 2026-06-06 12:44:37.147 Debug ItemsService-0HNM3N47R8UP5:00000001: http/1.1 GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=question mark mysterians&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. Source Ip: 54.195.177.241, UserAgent: 2026-06-06 12:44:39.612 Info SqliteItemRepository: Interrupt query due to cancellation. 2026-06-06 12:44:39.612 Debug App: Sqlite: 9 - statement aborts at 44: interrupted; [with WithAncestors AS (SELECT itemid FROM AncestorIds2 WHERE AncestorId=57475 ),WithItemLinkItemIds AS (select ItemLinks2.LinkedId From ItemLinks2 join withancestors on withancestors.itemid=itemlinks2.itemid where ItemLinks2.Type in (0,1,5))select A.Id,A.Name,A.RunTimeTicks,A.Images,UserDatas.IsFavorite from mediaitems A join fts_search9 on A.Id=fts_search9.RowId and fts_search9 match @SearchTerm left join UserDatas on A.UserDataKeyId=UserDatas.UserDataKeyId And UserDatas.UserId=17 where A.Type=13 AND A.Id in WithItemLinkItemIds ORDER BY Rank ASC] 2026-06-06 12:44:39.613 Info ItemsService-0HNM3N47R8UP5:00000001: http/1.1 Response completed after client disconnected to 54.195.177.241. Time: 2466ms. GET https://xxx.xxx.xxx/emby/Users/ba605147d56742b1b91f1e90f91db45c/Items?Recursive=true&IncludeItemTypes=MusicArtist&SearchTerm=question mark mysterians&UserId=ba605147d56742b1b91f1e90f91db45c&api_key=c8c89131fa594134b37205e7dcd8c7e0. those sqllite errors look menacing Command Alexa ask ear wax play artist megan thee stallion Response The requested media megan thee stallion could not be found in the library..
MarvinB 3 Posted 2 hours ago Author Posted 2 hours ago @ginjaninja Good news; Yes you can shuffle your playlist; 1) Alexa, ask Ear Wax to shuffle playlist ?? where ?? is the playlist name or: 2) Alexa, ask Ear Wax to play playlist ?? shuffled Where ?? is the playlist name I would use #1, it flows better Also, please test the question mark mysterians again. Thank you
ginjaninja 608 Posted 1 hour ago Posted 1 hour ago 1 hour ago, MarvinB said: @ginjaninja Good news; Yes you can shuffle your playlist; 1) Alexa, ask Ear Wax to shuffle playlist ?? where ?? is the playlist name or: 2) Alexa, ask Ear Wax to play playlist ?? shuffled Where ?? is the playlist name I would use #1, it flows better Also, please test the question mark mysterians again. Thank you Command "Alexa ask ear wax to shuffle playlist car" Response "Playing playlist car" track1 is always 1st,track2 is always 2nd (its not shuffled) Out of interest is it intended?....Is the skill shuffling the results? or the api call to emby? "Alexa ask ear wax to play artist questionmark and the mysterians" is now working (hooray) but the skill is dropping "questionmark and the" from the api search (seems dangerous why is that necessary out of interest?)
MarvinB 3 Posted 53 minutes ago Author Posted 53 minutes ago @ginjaninja Regarding the playlist, ok the first two were the same, the question becomes, were the rest shuffled? Considered the Mysterians issue resolved, you requested x it returned x.. why it does what it does is not really the issue, as long you get the correct results in the most effective manner, but to answer your question in one word, SQL.
MarvinB 3 Posted 36 minutes ago Author Posted 36 minutes ago @ginjaninja Ear Wax is racing a few clocks: The provider server has to find the playlist, artist, album, or genre. The provider server has to return enough tracks. the underlying code has to build the queue and send Alexa a playable URL. Alexa has to receive that response before it decides the skill took too long To buy the time, you shorten the payload, you get music started and while the music is playing you perform the necessary tasks. So yes, the first 2 tracks will ALWAYS be the same, but from track 3 until the end, those tracks should be different. Not everyone has a super fast very powerful server, so I tend to favor the slower ones, when developing Ear Wax
ginjaninja 608 Posted 13 minutes ago Posted 13 minutes ago 30 minutes ago, MarvinB said: @ginjaninja Regarding the playlist, ok the first two were the same, the question becomes, were the rest shuffled? oops they were indeed shuffled, i didnt listen that far before FWIW the audio feedback doesnt confirm that shuffled keyword is place is in place and is not distinguishable from standard playlist playback, eg "Playing Playlist Car Shuffled", might be a nice to have if trivial/fits the design. Alexa ecosystem support might be generally lifted if database searching was faster. By the the time you get down to songs the api really chugs, i will have another play with the sqllite performance settings, maybe i forgot to implement best practice on the most recent server build.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now