/usr/share/doc/python-musicbrainz2-doc/examples/getrelease.py is in python-musicbrainz2-doc 0.7.4-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | #! /usr/bin/env python
#
# Retrieve a release by ID and display it.
#
# Usage:
# python getrelease.py release-id
#
# Interesting releases IDs for testing:
# http://musicbrainz.org/release/290e10c5-7efc-4f60-ba2c-0dfc0208fbf5
# http://musicbrainz.org/release/fa9f1bdd-495f-41b9-8944-1a766da29120
#
# $Id: getrelease.py 11853 2009-07-21 09:26:50Z luks $
#
import sys
import logging
import musicbrainz2.webservice as ws
import musicbrainz2.utils as u
logging.basicConfig()
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
if len(sys.argv) < 2:
print "Usage: getrelease.py release-id"
sys.exit(1)
q = ws.Query()
try:
# Additionally to the release itself, we want the server to include
# the release's artist, all release events, associated discs and
# the track list.
#
inc = ws.ReleaseIncludes(artist=True, releaseEvents=True, labels=True,
discs=True, tracks=True, releaseGroup=True)
release = q.getReleaseById(sys.argv[1], inc)
except ws.WebServiceError, e:
print 'Error:', e
sys.exit(1)
print "Id :", release.id
print "Title :", release.title
print "ASIN :", release.asin
print "Lang/Script :", release.textLanguage, '/', release.textScript
# Print the main artist of this release.
#
if release.artist:
print
print "Artist:"
print " Id :", release.artist.id
print " Name :", release.artist.name
print " SortName :", release.artist.sortName
if release.releaseGroup:
print
print "Release Group:"
print " Id :", release.releaseGroup.id
print " Title :", release.releaseGroup.title
print " Type :", release.releaseGroup.type
# Release events are the dates and times when a release took place.
# We also have the catalog numbers and barcodes for some releases.
#
if len(release.releaseEvents) > 0:
print
print "Released (earliest: %s):" % release.getEarliestReleaseDate()
for event in release.releaseEvents:
print " %s %s" % (u.getCountryName(event.country), event.date),
if event.catalogNumber:
print '#' + event.catalogNumber,
if event.barcode:
print 'EAN=' + event.barcode,
if event.label:
print '(' + event.label.name + ')',
print
if len(release.discs) > 0:
print
print "Discs:"
for disc in release.discs:
print " DiscId: %s (%d sectors)" % (disc.id, disc.sectors)
if len(release.tracks) > 0:
print
print "Tracks:"
for track in release.tracks:
print " Id :", track.id
print " Title :", track.title
print " Duration :", track.duration
print
# EOF
|