Is there any web API for Software Center available?
Solution 1:
Well, yes. Keep in mind that
- The only acknowledged consumer of this API is the Software Center project. The syntax can and probably will be viciously deprecated in the future, with no regard for third parties.
- In the future, the Software Center may come to multiplex applications from other source APIs, such as those of Mozilla Marketplace and Appstream. As such this API may not be comprehensive.
- If you abuse this API you will be blocked.
With all those caveats aside
Applications
https://software-center.ubuntu.com/api/2.0/applications/$LANG/ubuntu/$SERIES/$ARCH/
will return a JSON document detailing third party applications currently installable for a given language code, release name prefix, and architecture. For example, here are the Software Center items currently provided for Ubuntu 12.04.
For technical reasons that would be constitutionally painful to explain, applications available from the Ubuntu archives (eg the Universe) are handled by a data package: app-install-data
. You can get the list with apt-get source -t $SERIES app-install-data
and handle it on your server locally; it doesn't change very often.
Reviews
http://reviews.ubuntu.com/reviews/api/1.0/reviews/filter/$LANG/ubuntu/$SERIES/$VERSION/$PACKAGE/
Will get you reviews for a package. Note that most fields here can be replaced with any
. For example, here are reviews of Warsaw written for 11.10.
Ratings
http://reviews.ubuntu.com/reviews/api/1.0/review-stats/ubuntu/$SERIES/
Will get you all ratings for all packages.
Images
http://screenshots.ubuntu.com/thumbnail-with-version/$PACKAGE/$VERSION
http://screenshots.ubuntu.com/screenshot-with-version/$PACKAGE/$VERSION
Will get you the thumbnail and screenshot for an application. For example, here is VLC's latest screenshot.
Other minor metadata
/usr/share/software-center/softwarecenter/distro/Ubuntu.py
/usr/share/software-center/softwarecenter/backend/piston/
For more API fun, visit these paths in your file browser. It's all in very readable Python. There's a lot of miscellanea for things like pagination, filtering, licensing text, review statistics, etcetera that you might be interested in: