Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Cast Support #50

Open
sunjaxx opened this issue May 30, 2021 · 19 comments
Open

[Feature Request] Cast Support #50

sunjaxx opened this issue May 30, 2021 · 19 comments

Comments

@sunjaxx
Copy link

sunjaxx commented May 30, 2021

Any plan to support cast (chromecast or DLNA), something like the native "play on" feature of the official jellyfin app? Thanks!

@jmshrv
Copy link
Owner

jmshrv commented May 30, 2021

A lot of people have asked for this, I'm waiting on the audio package I'm using to support it. It's in progress there, so I should be able to add casting soon: ryanheise/just_audio#211

As for DLNA, I might be able to make it work. I don't know much about DLNA, but I've heard that the Jellyfin server should handle it and I just have to give the command to the server.

@jmshrv
Copy link
Owner

jmshrv commented Jul 12, 2021

On iOS, you can use AirPlay to play both downloaded and streamed songs by selecting the device in control center/the playing notification. Still no Cast/DLNA yet though.

@seniorm0ment
Copy link

seniorm0ment commented Jan 20, 2022

I use the Mopidy-Jellyfin plugin for Mopidy, and this would be nice when the audio package is finished as long as it can be added in a libre manner :)

@misterashley
Copy link

Any plan to support cast (chromecast or DLNA), something like the native "play on" feature of the official jellyfin app? Thanks!

Any updates here? Is there anything someone can do to assist? This would be a killer feature for me, as I try to de-Sp**ify my life.

@seniorm0ment
Copy link

I know this is reliant on the package, but any updates on this?
Sucks to need to go to the Jellyfin app just to cast to my Mopidy server.

@Chaphasilor Chaphasilor mentioned this issue Oct 5, 2022
@sunjaxx
Copy link
Author

sunjaxx commented Oct 30, 2022

Any update/timelines for this? :) Thanks

@seniorm0ment
Copy link

A temporary solution could be to allow controlling of other Jellyfin devices. While not exactly the same as casting, I don't see why this would not be possible to implement.
It is already a feature with other Jellyfin clients.

@provokateurin
Copy link

Hi, I'm very interested in this feature and would be willing to develop it. I have no experience with DLNA, Jellyfin APIs or Finamp development, but I think it should be doable. @jmshrv https://api.jellyfin.org/#tag/Dlna and https://api.jellyfin.org/#tag/DlnaServer would be the relevant APIs, right?

@jmshrv
Copy link
Owner

jmshrv commented Jan 5, 2023

Those look about right, also the just_audio issue makes it look like it'll actually be possible to add casting now so I may look into it while I have access to devices that have access to casting

@provokateurin
Copy link

But the casting thing is different from DLNA, right? Because casting would be from the device and DLNA from the server where jellyfin runs if I understood things correctly.

@provokateurin
Copy link

Ah I see audio_cast supports DLNA itself, so it goes from the device? I think both modes of DLNA make sense to be implemented. My usecase would favour the DLNA from the server, so I'd like to implement that part.

@jmshrv
Copy link
Owner

jmshrv commented Jan 5, 2023

Ah yeah I just mentioned Chromecast as a separate thing, I'm pretty sure DLNA should be handled from the server

@provokateurin
Copy link

Ok, should we split it up into a separate issue? I think the UI parts will probably be the same, but the logic is obviously completely different.

@jmshrv
Copy link
Owner

jmshrv commented Jan 6, 2023

Yeah that's a good idea. For implementing DLNA, these are probably the relevant files:

  • services/jellyfin_api.dart - This actually handles sending HTTP requests to and from Jellyfin. It's pretty much just a simple Chopper thing that returns JSON.
  • services/jellyfin_api_helper.dart - This is what the whole app uses to interact with Jellyfin (and by extension the offline stuff, but that's all obscured). In this, you'll call the method you make in jellyfin_api.dart and return a nice class instead of some random JSON
  • services/music_player_background_task.dart - This is where the music service for Finamp is located - it handles current play state. It's closely related to the audio_service package, which tells the OS about the currently playing song (for background playback handling, now playing status etc). I don't really know how DLNA will tie in with it for a good user experience, but off the top of my head making a new music service that uses DLNA instead of actually playing audio would probably work.

@jmshrv
Copy link
Owner

jmshrv commented Jan 6, 2023

Oh, also models/jellyfin_models.dart, which contains all the classes that Jellyfin returns. For DLNA, you shouldn't have to mess about with Hive (used for offline storage), so it should be pretty recognisable if you've ever worked with json_annotation.

@provokateurin
Copy link

Thanks for the hints :)

@provokateurin
Copy link

New issue for DLNA opened, please rename this one to Cast only :)

@jmshrv jmshrv changed the title [Feature Request] Cast / DLNA support? [Feature Request] Cast Support Jan 6, 2023
@vladiskuz
Copy link

Does anybody start working on that?

@eugenialoli
Copy link

Any news on Chromecast support? The only reason why I use jellyfin is just so I can play my songs to our hi-fi system in our living room, that has Cast support. I never listen music through my phone, I prefer to use Finamp as a control app for casting. Unfortunately, the official Jellyfin app is extremely buggy when it comes to casting, and it makes it totally unusable for me. I wonder if Finamp has any plans for some solid casting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants