advplyr / audiobookshelf

Self-hosted audiobook and podcast server
https://audiobookshelf.org
GNU General Public License v3.0
5.83k stars 404 forks source link

[Feature Request] Amazon Echo skill for AudiobookShelf #316

Open lukc82 opened 2 years ago

lukc82 commented 2 years ago

Hi,

It would be great to be able to control the audiobookshelf using Alexa :)

Thanks, Luke

advplyr commented 2 years ago

This sounds like a fun project. I just skimmed through the documentation since I'm not familiar with Alexa.

Have you used Alexa for other self-hosted media servers? If so, I'm curious how the setup is handled. How does Alexa get your server address and login credentials for the media server?

lukc82 commented 2 years ago

Yes. I'm using MyMedia for Alexa (https://www.mymediaalexa.com/) and I'm surprised that since the launch of this project, it has been the only mature alternative for listeners of self hosted audiobook files. Especially for kids it's a wonderful tool. One word or sentence and there you go - your audiobook continues :)

On Sat, Jan 15, 2022, 21:05 advplyr @.***> wrote:

This sounds like a fun project. I just skimmed through the documentation since I'm not familiar with Alexa.

Have you used Alexa for other self-hosted media servers? If so, I'm curious how the setup is handled. How does Alexa get your server address and login credentials for the media server?

— Reply to this email directly, view it on GitHub https://github.com/advplyr/audiobookshelf/issues/316#issuecomment-1013746224, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF24RDMEZQD2UTR5LLUYAN3UWHHQDANCNFSM5MBJKYLA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

mx03 commented 2 years ago

Alexa needs a public audiobookshelf instance, additional it needs a central system ( e.g. audiobookshelf.org with oauth thats linked to the instance of the user). An alternative is that everyone deploy an skill with the alexa developer console that direct linked to the audiobookshelf instance.

But alexa always need the audiofiles on an public url even the abs and the alexa is on the intranet.

advplyr commented 2 years ago

Yeah I thought that might be the case. Although if Alexa knew your server url and audiobookshelf login then I don't see why it would require a central server.

mx03 commented 2 years ago

Yes thats the problem, alexa don't know the server url, if you publish an alexa skill you can link your amazon account with the server url that's in the skill.

Problem you can't pass the url to the server as a alexa user. There are two options:

advplyr commented 2 years ago

Sounds like this one will be something to look at again once the project is more mature.

I'm open to hosting a central server if it allows us to add certain features as long as it is opt-in only and transparent.

oboe45 commented 1 year ago

Very pleased with Audiobookshelf - works perfectly for me except for the lack of Alexa or Siri operability. Happy to contribute as a tester, but have no current skills to offer, unless you can make use of an IBM 360 assembler programmer from the 60’s!

adocampo commented 1 year ago

Just my two cents, I'm not a developer or whatsoever, but I set up a Lambda function to manage my Home Assistant, so I think there is no need at all for a "central server", if we, the users, have the steps to configure our own AWS Developer account and create a program with the free tier with a lambda function which connects to our ABS instance. We will need, besides the logic of the lambda function, which can be done in python or another programming language, a domain (I guess it can be done with free domains like no-ip.org) and publish ABS via https (which can be get with letsencrypt). It would be great to let alexa play any book or podcast on our ABS, and start reading where it left (MyMediaForAlexa doesn't do that).

zimler commented 11 months ago

This would be a really cool addition to an already amazing project.

yann-papouin commented 9 months ago

I've already made a self-hosted python's Alexa skill to play my children bed-stories and since I've now started self-hosting audiobookshelf (amazing app by the way) I was looking for a way to replace my http-files backend with it.

I took a look on https://api.audiobookshelf.org but I didn't found a way to get all titles/authors in the library (api/items/batch/get ?) or to make a content fuzzy search: convert user query to phonetic and compare it with all titles/authors (stored in phonetic too) using a levenshtein distance.

dathbe commented 7 months ago

I too would love this functionality. Plex is able to play self-hosted files through Alexa, though they obviously have a central point they can direct Alexa to and then distribute out to the specific server based on login information.

Some creative folks have come up with a way you can develop your own personal Alexa skill to link with the Subsonic API. https://github.com/rosskouk/asknavidrome . This could presumably be done for ABS as well.

The challenge would be, as others have pointed out, scaling this to a single production app that works for everyone's self-hosted server.

I don't have a lot of experience developing Alexa skills (I was able to get the asknavidrome skill working, but that's it). I know you can log in to skills. So it would presumably be possible to keep a central database of user logins that associate with self-hosted urls that allow connection to a skill. This has some privacy (and hosting) implications. So it would be interesting to know if, instead of just logging in, it is possible to develop a production alexa skill that requires configuration with a server address...like we do with the iOS app now. Not sure.

DavidPesticcio commented 3 months ago

Perhaps Alexa could be decoupled from the ABS server by using some no-code like Zapier in between, additionally using the cloudflared tool to expose the ABS server for added security/proivacy...?