| Anonymous | Login | 2010-09-08 12:58 EDT | ![]() |
| Main | My View | View Issues | Change Log | Roadmap |
| View Issue Details [ Jump to Notes ] | [ Print ] | |||||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | |||||||
| 0000534 | MediaMonkey (current) | Other | public | 2003-07-02 08:28 | 2010-07-01 02:02 | |||||||
| Reporter | rusty | |||||||||||
| Priority | immediate | Severity | feature | Reproducibility | always | |||||||
| Status | resolved | Resolution | fixed | |||||||||
| Platform | OS | OS Version | ||||||||||
| Product Version | ||||||||||||
| Target Version | 4.0 | Fixed in Version | 4.0 | |||||||||
| Summary | 0000534: Ability to share / stream library to other machines | |||||||||||
| Description | This functionality is present in MediaJukebox, and would be needed to support various set-top boxes. Needs to be specced. | |||||||||||
| Additional Information | Open source implementation by user: http://el.botijo.googlepages.com/mediamonkeyscripts [^] Article from Peke re. dlna servers: http://www.rbgrn.net/content/21-how-to-choose-dlna-media-server-windows-mac-os-x-or-linux [^] Interesting implementation at: http://www.wildmediaserver.com [^] | |||||||||||
| Tags | No tags attached. | |||||||||||
| Fixed in build | 1307 | |||||||||||
| Attached Files | ||||||||||||
Relationships |
||||||||||||||||
|
||||||||||||||||
Notes |
|
|
(0003545) rusty (administrator) 2004-03-23 16:16 |
I've been thinking a bit more about this, and now believe that we should consider adding this to MM 2.3. The reasoning is that it makes MM more viral than it currently is in the sense that users can share MM tracks from their home pc to their office PC, to their kid's PCs etc. Basically it makes MM more likely to be seen/publicised because of the fact that users will try to use it in more than one location. A bit more research shows that the DAAP/mDNS/rendezvouz protocol is gaining traction and that this is probably the way to go for this functionality. More about this is at: http://www.deleet.de/projekte/daap/ [^] |
|
(0003587) jiri (administrator) 2004-03-29 03:20 |
I reviewed the subject briefly and DAAP/mDNS/rendezvouz seems to be too Apple related (actually except for mDNS) and in case of DAAP somewhat closed (even though it's planned to open it a bit). Also the whole networking is quite a complex issue (in order to make is working well, without too much configuration, etc.) and thus it would be nice to involve someone else into its implementation (some MM users with knowledge of it, some developers of such products distributed as freeware). |
|
(0005416) rusty (administrator) 2005-03-12 21:39 |
Setting to immediate in order to discuss opportunities for partering for this (e.g. partering with 'Grouper'). |
|
(0005590) rusty (administrator) 2005-05-23 22:06 |
If we decide to support upnp instead of rendezvouz, there's an open source bsd-licensed project for this. see: https://sourceforge.net/projects/clinkcc/ [^] and a reference implementation at: http://www.cybergarage.org/net/cmgate/cc/index.html [^] |
|
(0006921) rusty (administrator) 2006-02-22 09:39 |
If we want to support upnp devices and slim devices' squeezebox, there are several potential partners: http://www.telcanto.com/products.htm [^] (upnp and slim variant of upnp) http://www.twonkyvision.de/ [^] (upnp) http://www.digital5.com/products/platform_overview.asp [^] (upnp) http://upnp.sourceforge.net/ [^] (open source berkely license upnp library) If we want to develop this functionality, we don't really (at least initially) require any special hardware, since there are numerous clients with which we can test including: -Windows MediaPlayer, twonkyvision (upnp) -Softsqueeze and others (slim devices): http://wiki.slimdevices.com/index.cgi?PluginPlayers [^] More information is available at: http://www.media-servers.com/forums/ [^] Although I would like to add this functionality, my inclination would be to outsource it as a plugin, if possible. |
|
(0006932) peke (developer) 2006-02-23 15:51 edited on: 2006-02-23 16:02 |
I Agree with you completly, Plugin only. Basic reason is. http://grc.com/UnPnP/UnPnP.htm [^] We should be carefull about this as there is Cas ethat MM could be used to Allow hacker attacks or installing malware or other undessired applications at your system, as MM is certificated to be trusted app with no malware and Adware,... I suggest that we proceide with care. Additional Links: http://www.upnp.org/ [^] |
|
(0009541) rusty (administrator) 2007-06-22 15:26 |
Note, when we eventually implement this we need to consider that the most popular playback 'devices' are probably xbox2 and playstation3, which support: http://www.microsoft.com/whdc/device/media/MCX.mspx [^] & http://en.wikipedia.org/wiki/Universal_Plug_and_Play [^] PS3 native formats that I know of are: Sound:MP3, AAC, WMA. Video: mpeg-2, AVC mpeg-4, VC-1. |
|
(0010817) rusty (administrator) 2007-09-18 13:12 |
Related idea: http://www.deusty.com/ [^] |
|
(0011785) peke (developer) 2007-11-05 01:00 |
Searching Other things I have found Free Delphi UPNP Components that can be possibly Used in MM http://www.whitebear.ch/ [^] |
|
(0013407) rusty (administrator) 2008-03-20 11:18 edited on: 2008-11-07 10:26 |
Brilliant implementation for iTunes that shares the library between 2 iTunes apps, even highlighting which Tracks are missing vs which are dups. http://lifehacker.com/369747/download-music-from-your-friends-itunes-libraries-over-the-internet-with-mojo [^] |
|
(0014875) rusty (administrator) 2008-11-07 10:27 |
More info from Jiri: http://en.wikipedia.org/wiki/Digital_Audio_Access_Protocol [^] |
|
(0014883) jiri (administrator) 2008-11-10 07:37 |
re. DAAP - I found out that the current implementations support only older version of iTunes, iTunes 7 and particularly iTunes 8 added some kind of authentication that noone has hacked yet. Apple possibly licenses it, but I doubt that there will be any reasonable terms. This leaves UPnP as the best choice (which it probably is anyway, due to its support in several devices). We should try to implement both UPnP client and server in MM. Our implementation can be based on several underlying technologies: A. Windows UPnP API (http://msdn.microsoft.com/en-us/library/aa382303(VS.85).aspx [^]) B. Another implementation, e.g. http://sourceforge.net/projects/platinum/ [^] looks good. Unless we find any problem with it, I'd prefer B, because it's cross-plaform, which could be useful in the future and completely open-source. So, we should create a DLL based on B, exposing UPnP functionality as needed by MM. Then MM would expose its Library as a UPnP device and also on start it would look for other UPnP devices and show all of them in the main Tree. Both client and server parts should be possible to disable in Options. Other useful links: - Intel UPnP Tools: http://www.intel.com/cd/ids/developer/asmo-na/eng/downloads/upnp/overview/index.htm [^] - http://pupnp.sourceforge.net/ [^] (Linux only?) - collection of UPnP links: https://coherence.beebits.net/wiki/Resources [^] - User contributed UPnP client and server for MediaMonkey: http://el.botijo.googlepages.com/mediamonkeyscripts [^] |
|
(0015033) Ludek (developer) 2008-11-20 15:50 edited on: 2008-11-20 16:06 |
Another usefull link: http://xbmc.org/wiki/index.php?title=UPnP_Sharing [^] |
|
(0015052) Ludek (developer) 2008-11-21 07:53 |
Based on what I read and what Jiri suggested (the solution B) it makes sense to use Platinum project to build own DLL for UpNp functionality. But there is a small problem: Which licence we want to use (commercial or GPL). Based on the licence the DLL will be included within installation package or it will be separated plug-in (add-on). There is info about license: Platinum is copyrighted free software by Sylvain Rebaud <sylvain@plutinosoft.com>. Platinum uses a "dual licensing" business model. Under this model, users may choose to use Platinum under the free software/open source GNU General Public License (commonly known as the "GPL") or under a commercial license. With the GPL license, Platinum is available free of charge. Users may download the software for free and modify, integrate and distribute it. However, GPL users must abide by the rules of the GPL, which stipulate that if a Platinum-based application is redistributed, the complete source code for this application must also be open and available for redistribution. Plutinosoft offers a commercial license for organizations that do not want to release the source code for their application. Commercial license customers get a commercially supported product with a level of assurance from Plutinosoft, without the requirement that their Platinum-based software must be "open sourced". Plutinosoft is able to provide a commercial license because it has full ownership of the Platinum code. As discussed with Jiri over IM, Rusty is going to cantact them for a license. |
|
(0015141) Ludek (developer) 2008-11-26 09:19 edited on: 2008-11-26 09:21 |
I checked the Platinum stack. Tested it etc. All seemed to be fine, but I found that Platinum doesn't support unicode (isn't unicode enabled). I run the Platinum media server with one shared folder where I had a file including some unicode chars in the file name. Both Platinum media controller and XBMC media center (www.xbmc.org) show only ?? instead of the unicode chars when browsing. Also watching the sources I found that Platinum is not unicode enabled. Then I tried TVersity (http://tversity.com [^]) media server. I shared the same folder via TVersity and now the Unicode chars are there when I browse by using XBMC, but they are not there when I browse by the Platinum media controller sample app. It is strange, because XBMC is powered by Platinum. Rusty, could you ask Sylvain Rebaud how is it with Platinum and Unicode? Whether he plans to add unicode support? |
|
(0015205) Ludek (developer) 2008-11-27 16:31 |
Assigning to me, because I am working on it. |
|
(0015316) Ludek (developer) 2008-12-03 07:59 |
Sylvain published Platinum 0.4.5 on Sourceforge with a Unicode patch: http://sourceforge.net/projects/platinum/ [^] |
|
(0016599) Ludek (developer) 2009-02-09 16:53 edited on: 2009-02-10 16:06 |
I implemented and integrated UPNP browsing/sharing/playing based on the Platinum project and seems to work fine. The functionality can be tested via files attached on our FTP, in the directory UPNP there are 2 files: UPNP.dll and MM.exe. Copy both the files to MM install folder and run MM.exe. Create folder C:\Testing\ and copy some tracks to the folder, content of the folder will be shared as UPNP server on MM start up. All available UPNP servers can be browsed and played via new 'UPNP Servers' node bellow 'Podcast Subscriptions' node. So now it is about UI implementing (Tools|Options|UPNP) and specification. I suggest following: Add new options sheet called 'UPNP' or 'Universal Plug and Play' with following content: ------------------------------- | [x] Enable UPNP client | | Download UPNP files to: /My Music/Downloaded UPNP files/<Artist>/<Album>/<#Track>-<Title> [Browse] | | ---------------------------------- | [ ] Enable UPNP shares (servers) | | ------------------------------------------- | | Server name: | Content to share: | | [x] My Music server | C:\My Music\ | | [ ] .......... | | | | |-------------------------------------------- | [Add new server to share] |------------------------------------------------------ We should also probably add a download manager that would be usefull with regard to this functionality and would also meets user needs whenever any track is required to download directly via its http:// link, there is already open issue for this (0001293) Assigned to Rusty for detailed specification. |
|
(0016617) Ludek (developer) 2009-02-11 05:21 edited on: 2009-02-11 05:23 |
As discussed offline it would make sense to share content in a manner similar to how the user syncs content to a device or burns content to a DVD. If MM's upnp server is just going to share a directory, then there's not much benefit to integration with MM. e.g. in a UI similar to the device config UI, the user would -Share tracks from an AutoPlaylist -Share a podcast -Define a mask and the path to the tracks would be some sort of 'virtual path' based on whatever mask the user defines. Assigned to me for investigation (as post 3.1 task). |
|
(0016676) Ludek (developer) 2009-02-19 09:30 edited on: 2009-02-19 09:32 |
I implemented the ablility for sharing music in the manner similar to how the user syncs content to a device. Created test MM UPNP server that shares music with Genre = 'Rock' and under mask <Artist>/<Album>/<Title> MM.exe and UPNP.dll are uploaded on our FTP in the UPNP folder. So now its about UI adding, I would use the same dialog as for device configuration including "Auto-Sync list" and "Device Configuration" pages. In addition we could add "Auto-Conversion"? |
|
(0018455) Ludek (developer) 2009-06-19 11:46 edited on: 2009-06-19 14:07 |
Rusty, Jiri, I would need to add an UI for the UPnP that I have implemented, I suggest to add new option sheet called "UPnP" that would look like this: ------------------------------- | [x] Enable UPnP client | | Download UPnP files to: /My Music/Downloaded UPnP files/<Artist>/<Album>/<#Track>-<Title> [Browse] | | ---------------------------------- | [ ] Enable UPnP shares (servers) | | ------------------------------------------- | | [x] My podcasts | [Options] | | [ ] My favorite music | [Options] | | <Add new server to share...> | | | | | |-------------------------------------------- |------------------------------------------------------ After clicking [Options] button there would be similar dialog as for device configuration including "Auto-Sync list" and "Device Configuration" pages. In addition we could add "Auto-Conversion"? => The "Auto-Sync list" tab I would rename to "Content to share" or "Shared content" The "Device Configuration" tab I would rename to "UPnP Configuration" where would be only the first option leaved for now: Share tracks as: [\<Album Artist>\<Album>\<Filename>] [>>] [Configure] and above this option there should be another option: Server Name: [My Favorite Music] -- "My favorite music" is just example Additionally we could add also "Auto-Conversion" page where user with FLACs and WAVs in his library could configure that he want to share them as MP3s? |
|
(0018456) Ludek (developer) 2009-06-19 13:49 edited on: 2009-06-19 14:09 |
Just for clarification: The "My Podcasts" and "My favorite music" are just examples, you can set whatever name of the server. Note that nothing is streamed automatically, you only set what you want to share and under which path and under which server name. Then the servers will ne available under the "UPnP Servers" node in main tree that enables browsing of them (if '[x] Enable UPnP client' is checked). If you use MM.exe and UPNP.dll from our FTP in the UPNP folder: There is created test UPnP server that shares music with Genre = 'Rock' and under mask <Artist>/<Album>/<Title> |
|
(0018465) jiri (administrator) 2009-06-22 08:39 |
As discussed with Ludek on phone, I'd suggest the following: [x] Enable UPnP client - I don't think we need this, it can be enabled automatically as a tree node and in case user doesn't need it, it can be hidden using filters configuration. Download UPnP files to: ... - Also doesn't seem to be needed. This could be somehow integrated with the upcoming Download Manager, so that user would right-click UPnP shared tracks to be downloaded, select Download and then a dialog would appear (useful for all types of downloads) where user could further confirm destination, etc. So, there only remains something like this: ------------------------------------- | [ ] Enable UPnP shares (servers) | | ----------------------------------- | | [x] Filter: Music [Options] | | [ ] Filter: Videos | | [ ] Filter: Podcasts | |+[ ] Playlists | | | |---------------------------------- |------------------------------------ The idea is to simplify configuration, so that it isn't as complicated as Device or Burning configuration currently is. This would be very easy to configure, easy to understand by user and also easier to implement. (Note that I'd also think about using such a simplified approach for Device synchronization and Burning, because the current implementation is unnecessarily complex, hard to maintain and probably also rather hard to understand by users). |
|
(0018476) peke (developer) 2009-06-22 18:55 edited on: 2009-06-22 19:00 |
Rusty, 1. I wonder if it would be clear to user that we use familiar UI similar to Sync? ------------------------------------- | [ ] Enable UPnP shares (servers) | | [Library]{Playlists}--------------- | | [ ] Filter: Videos | | [ ] Filter: Podcasts | | [ ] Filter: AudioBooks | | [x] Filter: General Music | | [ ] Filter: Available Tracks | | | |---------------------------------- |------------------------------------ ------------------------------------- | [ ] Enable UPnP shares (servers) | | {Library}[Playlists]--------------- | |+[ ] Playlists | | | | | | | | | | | |---------------------------------- |------------------------------------ 2. Regarding Enable UPnP client and Download UPnP files to I agree with Jiri |
|
(0018480) jiri (administrator) 2009-06-23 04:16 |
Could be, but I'd still slightly prefer the original suggestion, since it would involve less mouse clicks and also would show everything in one place. |
|
(0018519) Ludek (developer) 2009-06-26 05:59 edited on: 2009-06-26 07:48 |
I like the Jiri's idea to simplify configuration, so that it isn't as complicated as Device or Burning configuration currently is. But if we want to let users to configure more own UPnP servers then I would prefer the layout I suggested: ---------------------------------- | [ ] Enable UPnP shares (servers) | | ------------------------------------------- | | [x] Ludek's music | [Options] | | [ ] Ludek's favorite music | [Options] | | <Add media share...> | | | | | |-------------------------------------------- |------------------------------------------------------ and [Options] button would bring the layout Jiri suggested: ------------------------------------- | Server name: [Ludek's music] | Share tracks as: [\<Album Artist>\<Album>\<Filename>] [>>] [Configure] | Content to be shared: | ----------------------------- | | [ ] Filter: Videos | | [ ] Filter: Podcasts | | [ ] Filter: AudioBooks | | [x] Filter: General Music | | [ ] Filter: Available Tracks | |+[ ] Playlists | | | |---------------------------------- |------------------------------------ |
|
(0019942) Ludek (developer) 2010-01-13 07:14 edited on: 2010-01-13 16:32 |
As Peke indicated there is something we should evaluate: supporting DLNA: http://www.dlna.org/ [^] DLNA is derived from the UPnP e.g. Mezzmo implemented it: http://www.conceiva.com/products/mezzmo/default.asp [^] We use Platinum SDK http://www.plutinosoft.com/blog/platinum/ [^] so it seems that DLNA sould be easy to support, Sylvain added support of DLNA to version 0.5.3: http://www.plutinosoft.com/blog/category/platinum/ [^] |
|
(0019946) peke (developer) 2010-01-13 16:54 |
@Rusty I think that yours QNAP NAS have ability of DLNA Server? |
|
(0019969) peke (developer) 2010-01-21 18:42 |
I just noticed one trivial thing. If multiple MM with enabled servers are used on LAN I think we should add ability to Change Each Server name directly in MM. |
|
(0019995) rusty (administrator) 2010-02-03 15:16 edited on: 2010-02-05 14:53 |
Based on our discussions, I've attached a couple of simpler UI proposals that attempt to meet the following requirements: -Needs to only enable sharing of collections and playlists -Should support other protocols in the future (e.g. Sharing content via a web/streaming interface, or via bonjour) Per Server: -Need to enable/disable server & provide status indicator re. sharing -Need to define server name Per Device: -Would be nice to transcode on a per-device basis -Needs to warn the admin if new device is connecting (so as to set transcoding rules) Access Control: -Need to restrict access to external IP addresses -Should be possible to restrict Access per Collection and/or for ALL Playlists Other requirements that I'm less certain of are: (?) Nice to support multiple servers per server type? I don't see any benefit in doing so. (?) Nice to present hierarchy for playlists (in order to better navigate large autoplaylists). Assumptions: -Collections / Playlist hierarchy can be represented using MediaMonkey's tree structure (i.e. no need for a separately defined hierarchy). Mockup 5 is the simplest design that meets the minimum requirements. Should we find that per-device access control / conversion is required, we can make some adjustments. |
|
(0020193) Ludek (developer) 2010-05-28 09:50 edited on: 2010-05-28 09:54 |
Implemented based on the Mockup 5 and covered by automated regression tests. Added also the <Access Control> page based on MAC address (because IP can be dynamic). Added compatibility with the xBox 360 and various others clients: Tested Windows clients: [WMP, tVersity, TwonkyMedia, XBMC] Tested iPhone clients: [m-connect, PlugPlayer, UPnPPeek, Browse UPnP, MLPlayer] Note that MediaMonkey Player (Volume, Next, Previous, Play/Pause, Stop, ...) can now be controlled via UPnP (as UPnP renderer) if the '[x] Allow control of MediaMonkey player via UPnP/DLNA' checkbox is enabled. Added in build 1307. |
| Copyright © 2000 - 2010 MantisBT Group |