User Tools

Site Tools


All external libraries should be treated the same way. There should be an Add-on-API. ====== Examples of external library types ====== * Spotify * Google Music * Grooveshark * DAAP * Samba * Rdio ===== Google Music ===== {{ :kitchen:gmusic.png?nolink&|}} Steps : - Install the Google Music songs importer tool (work on Windows/Mac/Linux) - Set to watch your Music folder (same as Nightingale) - Write/update the [[|Web Scraper]] to parse and allow download of songs manually - Write an add-on to automatically check/download songs the user doesn't have on local library (Still no API, may have to reverse engine Google Music) - Ability to import/export playlists - Design a simple interface : A Google Music node in the Left Service Pane, style the web page to remove player controls and maybe bind the Nightingale controls on Google Music instead - Settings : * Auto download (check the whole user Google Music account to see what songs are missing on local db) (disabled by default) * Google Music importer path : either call the importer settings window, or check where is located the pref * Frequency check for new songs uploaded (at each Nightingale start, each X minutes..) To check : * We could bundle the Google Music importer tool but we have to check if the licence allow this * How to call the importer settings window from Nightingale * Disable Flash applet without errors (improve memory use, and we use Nightingale/GStreamer to play Google Music songs instead) * If using the unofficial API, we have to safely store the password * Why not just streaming the files? Risks : * Google Music update could broke the add-on * Slowing down Nightingale with multiple requests * Check that the importer is not uploading the downloaded song (crazy loop :-O) * Avoid exceeding Google Music songs limit (20,000) (maybe having songs in a subfolder, then ability to chose which songs to upload by simply moving them into this folder) Links : * * * ====== What this API would allow ====== A gap-less integration of any music streaming service into your local library. A possibility would be to display all tracks as local but they should easily be hidden/shown. This integration allows to search in this libraries and play tracks from them. Also playlists should be synced between the service and Nightingale. ====== Special cases ====== External libraries like spotify, which are impersonal, should not return a list of tracks available. So they would just add properties (webURLs etc.) to existing titles and enhance search results. ====== How not to do ===== Recently a player called [[|"Tomahawk"]] was launched. It displays every source as own tree node, which makes it extremely complicated if you use multiple services. But it was faster.

kitchen/external_libraries.txt · Last modified: 2012/07/23 10:28 by freaktechnik