Summary Simple Music Store embedded in Rhythmbox / Banshee


The Lucid music store project aims to deliver the ability to purchase music from within a desktop music player. The overriding requirement of the project is to minimise engineering effort. This will be achieved through the usage of off the shelf solutions with minimal modifications. Only changes classified as blockers will fall within scope of this project. No effort will be expended towards improving the user experience of the default off the shelf components.


  1. Integrate a web browser engine into Rhythmbox (WebKitGtk+) or Banshee (Mono WebBrowser).

  2. Add a link to the Ubuntu One music store into the music player (Rhythmbox or Banshee) library panel. When selected this link opens the Web Browser in the body area.
  3. The Web Browser loads the music store into the body area of music player.
  4. The music store is used almost as-is, including usage of the payments functionality. The only modifications to be made are listed in the sections below.
  5. Any music purchased is downloaded to ~/Music. This directory is set as the default directory for the music player. Downloading new music from the store triggers a rescan.

Changes to the TBD store

  1. Remove the Sign In / Sign Out options. The user is always automatically singed in by Ubuntu One. If the user is not signed into Ubuntu One a link to the desktop Ubuntu One Join/Logon dialogue is displayed.
  2. Replace the music store logo for the Ubuntu One logo
  3. Create an attractive error page for the user to view if the music player loses its internet connection.

Changes to the music player

  1. Integrate a web browsing engine
  2. Add a link to the Ubuntu One music store
  3. Replicate the Play and Download functions from the Songbird store, tie the play function to the standard play/pause, next, previous, etc... controls


Important aspects of customization to consider

  • How to initialize the store frame
  • Failing quickly to the "cannot connect to store. [try again]" message. No extended timeout.
  • Authenticate by injecting cookies into the web browser widget. Or other form of authentication.
  • Use SSL.
  • In the first iteration, use the music stores credit card processing for payments. Later, integrate with Ubuntu One payments.
  • Downloads: Where does music get downloaded to? How are downloads managed from the purchases in the shopping cart? Custom native-widgets frame for managing downloads.
  • How to set up a new account? Relationship to Ubuntu One account? Storing credentials locally. Extra terms and conditions?
  • Playing previews of songs.

Release Note

This section should include a paragraph describing the end-user impact of this change. It is meant to be included in the release notes of the first release in which it is implemented. (Not all of these will actually be included in the release notes, at the release manager's discretion; but writing them is a useful exercise.)

It is mandatory.


This should cover the _why_: why is this change being proposed, what justifies it, where we see this justified.

User stories



You can have subsections that better describe specific parts of the issue.


This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:

UI Changes

Should cover changes required to the UI, or specific UI that is required to implement this

Code Changes

Code changes should include an overview of what needs to change, and in some cases even the specific details.



  • data migration, if any
  • redirects from old URLs to new ones, if any
  • how users will be pointed to the new way of doing things, if necessary.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

Unresolved issues

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.



DieB: great idea. but pls use webkit for banshee too, since more and more browser-engines would give me more and more work to secure them and webkit is incorporated in gnome already (or use the gecko-engine, since it is also already on board)

AlexandreP: Not everybody use ~/Music as its default music directory. A user can select it's library location in Rhythmbox and Banshee (and probably in Amarok too, for Kubuntu users); downloading music in ~/Music if it is not the defined library location in the music player is, IMO, not logical and does not respect the user's choice. This plugin could download music in (1) the location defined by the user in its music player, or (2) to the location defined as the default Music directory in ~/.config/user-dirs.dirs, or (3) in Ubuntu One's folder, if this service is going to be integrated with Ubuntu One. My preference is to #1 (and I don't understand why changing the library location in RB/Banshee does not change the value of XDG_MUSIC_DIR, but that's another story).

ChrisH: Will UbuntuOneMusicStore be a retail front for other organizations (e.g. Amazon)? This is an important consideration because some of those organizations will not sell music downloads to some countries. For example, Amazon Canada does not sell music downloads and will not sell to Canada. HDTracks will only sell in the USA. Pandora will only work in the USA. I'm not sure what the nature of distribution agreements underlies this issue but offering a service to purchase music online that only works in certain countries would seem to be somewhat contrary to openness. On the other hand, if the UbuntuOneMusicStore will work universally, that would be a cool and amazing thing!

Pietro Battiston: Depending the details of the rhythmbox store interface, this may not be a blocker: still, it makes sense to point out that ~10% of online music sales consists in classical music (~12% for Amazon, at least), and that is still open (no "composer" tag).

Samuel Sarette: Are we likely to see Amarok integration? I hear such things are very straightforward.

Specs/LucidUbuntuOneMusicStore (last edited 2010-02-26 03:30:47 by 158)