Jump to content

Request for UPnP/DLNA support to stream cloud music library to Poweramp


Alnewtes
Go to solution Solved by andrewilley,

Recommended Posts

Dear Poweramp team,

I am writing to request support for UPnP/DLNA in Poweramp. This would be a great feature for users who want to stream their music libraries from the cloud to Poweramp.

I currently use a cloud music service to store my music library. I would love to be able to stream my music directly from the cloud to Poweramp and stream music libraries to other devices, so that I can enjoy my music collection on my phone without having to download any files.

Adding UPnP/DLNA support to Poweramp would make it even more versatile and powerful. It would allow users to enjoy their music libraries from the cloud on all of their devices, without having to worry about transferring files or using separate apps.

I know that there are other music players that already support UPnP/DLNA, but Poweramp is my favourite player and I would love to see this feature added. I am confident that many other Poweramp users would feel the same way.

Sincerely, Raalnewtes

Link to comment
Share on other sites

This is an often requested feature, but one of the major concerns is that Poweramp is a Library-based player, and scanning embedded metadata tags, artwork, etc from tens of thousands of remotely stored files would be a very time-consuming process, and regular rescans to check for changes would also take a very long time.

That said, there is a proposal to offer a simple folder/filename listing system (basically a file explorer) without any tag data such as Title, Artist, Album, etc until you open the folder/file for playing. So the files would be playable, but you wouldn't be able to see the songs sorted by Artist or Album.

You can already set up a symbolic folder in your Android file system, linked to (for example) SMB access to a NAS drive - but again, with a lot of files the scanning process will be very slow as PA will try to treat it as normal local storage.

Andre

Link to comment
Share on other sites

@Raalnewtes thanks for the request. DNLA/Upnp is a local network protocol, it's not a cloud protocol. If you mean you want to access your home NAS, it's already possible with plugins (CIFS Documents Provider), but it won't work well for larger libraries due to need for scan for tags. Same for cloud storages, they are much slower and only folder based access realistically possible within Poweramp (which runs on your device, it doesn't have any cloud components, may be except chromecast support).

 

 

Link to comment
Share on other sites

@andrewilley there should be no need for heavy lifting like scanning the individual files with DLNA, that's handled by the DLNA server and there would be no need to import the DLNA metadata into the database as DLNA is a library of it's own, providing the browsing capabilities etc. So it should be doable to add DLNA as a live category like streams.

The basic browsing is quite good, but a bit limited. A music player pulling the library into it's own library and enhancing it would be great... but... that would be opening of a can of worms...

Example of metadata file that's provide by the DLNA for each object.

<?xml version="1.0" encoding="UTF-8"?>
<item id="1$6$1$3$0" parentID="1$6$1$3" restricted="1" refID="64$138$0$0">
<dc:title>Balls to the Wall</dc:title>
<upnp:class>object.item.audioItem.musicTrack</upnp:class>
<dc:creator>Accept</dc:creator>
<dc:date>1983-01-01</dc:date>
<upnp:artist>Accept</upnp:artist>
<upnp:album>Balls to the Wall</upnp:album>
<upnp:genre>Heavy Metal</upnp:genre>
<upnp:originalTrackNumber>1</upnp:originalTrackNumber>
<res size="0" duration="0:05:43.306" bitrate="128000" sampleFrequency="44100" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000">http://192.168.0.99:8200/MediaItems/3369.mp3</res>
<upnp:albumArtURI dlna:profileID="JPEG_TN" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/">http://192.168.0.99:8200/AlbumArt/857-3369.jpg</upnp:albumArtURI>
</item>

 

 

 

Link to comment
Share on other sites

@maxmp @andrewilley In case of regular scans, is it not possible to only rescan the files that have been changed since the last scan. This can be done by using a file checksum. When the service scans a file, it can calculate a checksum for the file and store it in a database. When the service needs to check if a file has changed, it can simply calculate the checksum again and compare it to the stored checksum.

Link to comment
Share on other sites

Personally I would hate to have the content of my DLNA library permanently added to my Poweramp library. It would be much clearer to have it as a DLNA category and let the DLNA server handle the "library part" of it.

This would still allow for using the Poweramp player interface, equalizer, and hopefully fix the gapless playback which is a annoyance in DLNA. (DLNA typically ends the play of one track before loading next one, which gives a very annoying gap in playback).

@Raalnewtes there is no way to check for changed content in DLNA, at the best you get a list of recently added content. Therefore it's better to just read the metadata served by the DLNA server.

There are basically three components in DLNA

  • Server
  • Renderer, this is where the actual playback happens
  • Control point, this is the user interface, you pick what to listen to from the library and where to play it. A lot of CP's do allow for local playback, in this cases the CP is also the renderer.

DLNA is quite good at presenting a basic list of the content to the "control point" and just point it to the renderer. Some of the problems is the gapless playback as tracks are played one by one (very few devices allows for gapless), limited library views as most CP's only allows for the library views provided by the server.
 

One of the challenges with external sources like NFS/CIFS/Samba/Cloud/DLNA... is that Poweramp will not get notified about changes to the files on the server, while with local content Poweramp get's a notification about changes to files and can update library accordingly.

Link to comment
Share on other sites

1 hour ago, Raalnewtes said:

 In case of regular scans, is it not possible to only rescan the files that have been changed since the last scan.

Yes, that's how it already works. PA still needs to crawl the entire directory structure to check to see if anything has been changed/added/deleted though, even if at the end of that scan it hasn't needed to read the tags from a single file. And with remotely accessed storage (NAS/etc) the crawling process will be significantly slower than for scanning local storage. 

If your file library doesn't change very often though, you could just turn Auto Scan off completely and do a manual rescan whenever you know you've made some changes on your SMB shares.
 

@6b6561 Yes, DLNA provides its own list of available content, which would not appear in PA's regular Library Categories. I assume PA would require a completely new list interface option - like the Streams category, but looking somewhat similar to the Folders Hierarchy view I guess - which would be populated on the fly as you drill down through the layers of content offered by the DLNA server. I'm not sure whether DLNA also forces transcoding of the audio stream (I know it can do so, to keep the player clients simpler) or if it can also pass, for example, a high-res FLAC file transparently directly to the playback client. It would certainly break a lot of traditional PA features though, such as crossfade, gapless, etc. It would also be a lot of work for Max, and could take many months away from implementing other regularly requested features. 

Andre

Link to comment
Share on other sites

@maxmp@andrewilley@6b6561

Can't it get implemented the way UAPP has done it. As per my understanding UAPP implements a simple folder/filename listing system for its UPnP/DLNA support, we can browse and play music files without having to wait for the metadata to be scanned?

I am not comparing these two, both are unique but just out of curiosity because using Bubbleupnp I easily listen my music stored in cloud in UAPP.

Link to comment
Share on other sites

2 minutes ago, Raalnewtes said:

As per my understanding UAPP implements a simple folder/filename listing system for its UPnP/DLNA support, we can browse and play music files without having to wait for the metadata to be scanned?

Yes, that was what I was saying in my previous message. SMB or DLNA servers could be presented in their own hierarchical layout, separately from Poweramp's main Library. Still a lot of work to build a while new selector interface though.

Andre

Link to comment
Share on other sites

Yeah got your point, Poweramp will have to implement the interface along with new server class. It would be challenging. 

I appreciate your detailed responses.

Though UPnP/DLNA the feature we miss but Poweramp gives us a lot beyond that to enjoy music. I wish all the best maybe in future team will come up with something surprising. 

Thanks @andrewilley @maxmp @6b6561

 

Link to comment
Share on other sites

Just conjecture here, but I suspect any work to implement local DLNA support might result in quite a bit of code that could be used in common with displaying simplified content lists for NAS/SMB content, or remote cloud-based storage such as Google Drive, Drop Box, etc. So supporting one via a separate hierarchical list format could make the others easier to add too.

Andre

Link to comment
Share on other sites

@andrewilley DLNA is another one of the fine "standards" that has evolved in random directions... there is a base requirement set and then all sorts of additions on top of that. Some DLNA servers like Plex will transcode things on the fly, but minidlna which I run doesn't do anything but serve the files as they are. (glorified web server)

The xml snippet that I posted above had the media url in it, a very simple http://192.168.0.99:8200/MediaItems/3369.mp3 would play "Balls to the Wall".

I use minidlna primarily to play CD rips in flac format on my home stereo. Setup is:

  • NAS with minidlna DLNA server, bunch of CD's ripped as single file flacs
  • HiFi cast as control point
  • Chromecast audio connected with optical cable to stereo, the AD conversion happens in the stereo

HiFi cast browses the content on the server, a play event will tell the Chromecast to do a http request to the server. 

Link to comment
Share on other sites

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