Jump to content

[BETA] Ear Wax - NOW AVAILABLE - Testers Wanted


Recommended Posts

MarvinB
Posted

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

Posted

Thanks for sharing.

MarvinB
Posted

 

 

Ear Wax has become my daily driver for music Emby -> Amazon Dot!!

Sign up for beta...

  • 2 weeks later...
OllieCox
Posted

Is the Ear Wax Skill still working and available?

ginjaninja
Posted
2 hours ago, OllieCox said:

Is the Ear Wax Skill still working and available?

Working for me...

ginjaninja
Posted

•    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
Posted

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
Posted (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 by MarvinB
MarvinB
Posted

@ginjaninja  Please try the artist ? and the mysterians again..

 

Thanks

ginjaninja
Posted
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
Posted

@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
Posted
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?)

 

Posted

@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. 

Posted

@ginjaninja

Ear Wax is racing a few clocks:

  1. The provider server has to find the playlist, artist, album, or genre.
  2. The provider server has to return enough tracks.
  3. the underlying code has to build the queue and send Alexa a playable URL.
  4. 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
Posted
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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...