seed

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 18, 2022 License: BSD-3-Clause Imports: 8 Imported by: 0

Documentation

Overview

Package seed generates URLs that pre-fill fields when adding entities to MusicBrainz.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ArtistCredit

type ArtistCredit struct {
	// MBID contains the artist entity's MBID, if known.
	// This annoyingly doesn't seem to work for the /recording/create form,
	// so ID should be set instead in that case (see the db package).
	MBID string
	// ID contains the artist's database ID (i.e. the 'id' column from the 'artist' table).
	// This is only needed for the /recording/create form, I think.
	ID int32
	// Name contains the artist's name for pre-filling the search field.
	// This is unneeded if MBID or ID is set.
	Name string
	// NameAsCredited contains the name under which the artist was credited.
	// This is only needed if it's different than MBID or Name.
	// TODO: Actually, it seems like Name is maybe ignored in favor of NameAsCredited
	// when seeding the standalone recording form? Investigate further.
	NameAsCredited string
	// JoinPhrase contains text for joining this artist's name with the next one's, e.g. " & ".
	JoinPhrase string
}

ArtistCredit holds detailed information about a credited artist.

type Edit

type Edit interface {
	// Type returns the type of entity being edited.
	Type() Type
	// Description returns a human-readable description of the edit.
	Description() string
	// URL returns a URL to seed the edit form.
	URL() string
	// Params returns form values that should be sent to seed the edit form.
	// Note that some parameters contain multiple values (i.e. don't call Get()).
	Params() url.Values
	// Method() returns the HTTP method that should be used for the request for URL.
	// GET is preferable since it avoids an anti-CSRF interstitial page.
	Method() string
	// Finish fixes up fields in the edit.
	// This should be called once after filling the edit's fields.
	// This only exists because recordings are dumb and require
	// artists' database IDs rather than their MBIDs.
	Finish(ctx context.Context, db *db.DB) error
}

Edit represents a seeded MusicBrainz edit.

type Info

type Info struct {
	// contains filtered or unexported fields
}

Info wraps a URL containing extra information (e.g. cover art); it's not an actual edit.

func NewInfo

func NewInfo(desc, rawURL string) (*Info, error)

func (*Info) Description

func (in *Info) Description() string

func (*Info) Finish

func (in *Info) Finish(ctx context.Context, db *db.DB) error

func (*Info) Method

func (in *Info) Method() string

func (*Info) Params

func (in *Info) Params() url.Values

func (*Info) Type

func (in *Info) Type() Type

func (*Info) URL

func (in *Info) URL() string

type LinkType

type LinkType int

LinkType is an ID describing a link between two MusicBrainz entities. It sadly doesn't appear to enumerate all possible values. There are 170-ish additional link types with translations in po/relationships.pot, many of which don't appear to be referenced anywhere else in the server repo.

const (
	// This is used to link an artist to its corresponding page on Allmusic.
	LinkType_AllMusic_Artist_URL LinkType = 283
	// This is used to link a genre to its corresponding page on Allmusic.
	LinkType_AllMusic_Genre_URL LinkType = 1093
	// This is used to link a recording to its corresponding page on Allmusic.
	LinkType_AllMusic_Recording_URL LinkType = 285
	// This is used to link a release group to its corresponding page on Allmusic.
	LinkType_AllMusic_ReleaseGroup_URL LinkType = 284
	// This is used to link a release to its corresponding page on Allmusic.
	LinkType_AllMusic_Release_URL LinkType = 755
	// This is used to link a work to its corresponding page on Allmusic.
	LinkType_AllMusic_URL_Work LinkType = 286
	// This links a MusicBrainz release to the equivalent entry at Amazon and will
	// often provide cover art if there is no cover art in the <a
	// href="/doc/Cover_Art_Archive">Cover Art Archive</a>.
	LinkType_AmazonASIN_Release_URL LinkType = 77
	// Designates that a work is or was the anthem for an area
	LinkType_Anthem_Area_Work LinkType = 357
	// Links a recording to the place it was arranged at.
	LinkType_ArrangedAt_Place_Recording LinkType = 866
	// Links a release to the place it was arranged at.
	LinkType_ArrangedAt_Place_Release LinkType = 865
	// Links a recording to the area it was arranged in. Use only when the place is
	// unknown!
	LinkType_ArrangedIn_Area_Recording LinkType = 864
	// Links a release to the area it was arranged in. Use only when the place is
	// unknown!
	LinkType_ArrangedIn_Area_Release LinkType = 863
	// This links two <a href="/doc/Work" title="Work">works</a> where one work is
	// an arrangement of the other.
	LinkType_Arrangement_Work_Work LinkType = 350
	// This indicates the artist who arranged a tune into a form suitable for
	// performance. ’Arrangement’ is used as a catch-all term for all processes
	// that turn a composition into a form that can be played by a specific type of
	// ensemble.
	LinkType_Arranger_Artist_Recording LinkType = 297
	// This indicates the artist who arranged a tune into a form suitable for
	// performance. ’Arrangement’ is used as a catch-all term for all processes
	// that turn a composition into a form that can be played by a specific type of
	// ensemble.
	LinkType_Arranger_Artist_Release LinkType = 295
	// This indicates the artist who arranged a tune into a form suitable for
	// performance. ’Arrangement’ is used as a catch-all term for all processes
	// that turn a composition into a form that can be played by a specific type of
	// ensemble.
	LinkType_Arranger_Artist_Work LinkType = 293
	// This indicates that a person or agency did the art direction for the
	// recording.
	LinkType_ArtDirection_Artist_Recording LinkType = 137
	// This indicates that a person or agency did the art direction for the
	// release.
	LinkType_ArtDirection_Artist_Release LinkType = 18
	// This indicates a person or agency which is responsible for talent scouting,
	// overseeing the artistic development of an artist, and acting as liaison
	// between artists and the labels.
	LinkType_ArtistsAndRepertoire_Artist_Recording LinkType = 135
	// This indicates a person or agency which is responsible for talent scouting,
	// overseeing the artistic development of an artist, and acting as liaison
	// between artists and the labels.
	LinkType_ArtistsAndRepertoire_Artist_ReleaseGroup LinkType = 62
	// This relationship type links instruments to genres they are commonly used
	// in.
	LinkType_AssociatedInstrument_Genre_Instrument LinkType = 1090
	// This describes an engineer involved with the machines used to generate
	// sound, such as effects processors and digital audio equipment used to modify
	// or manipulate sound in either an analogue or digital form.
	LinkType_Audio_Artist_Recording LinkType = 140
	// This describes an engineer involved with the machines used to generate
	// sound, such as effects processors and digital audio equipment used to modify
	// or manipulate sound in either an analogue or digital form.
	LinkType_Audio_Artist_Release LinkType = 31
	// Links a release with an event where it was available. This is intended for
	// event-exclusive releases and/or releases available at events before the
	// official launch date, not for every release in the merchandise stall.
	LinkType_AvailableAt_Event_Release LinkType = 795
	// This links a recording to the balance engineer who engineered it.
	LinkType_Balance_Artist_Recording LinkType = 726
	// This links a release to the balance engineer who engineered it.
	LinkType_Balance_Artist_Release LinkType = 727
	// This links an artist to its page at Bandcamp.
	LinkType_Bandcamp_Artist_URL LinkType = 718
	// This links a genre to its page at Bandcamp.
	LinkType_Bandcamp_Genre_URL LinkType = 1092
	// This links a label to its page at Bandcamp.
	LinkType_Bandcamp_Label_URL LinkType = 719
	// This relationship type links an artist to its corresponding page at
	// Bandsintown.
	LinkType_Bandsintown_Artist_URL LinkType = 862
	// This relationship type links an event to its corresponding page at
	// Bandsintown.
	LinkType_Bandsintown_Event_URL LinkType = 860
	// This relationship type links a place to its corresponding page at
	// Bandsintown.
	LinkType_Bandsintown_Place_URL LinkType = 861
	// This links two <a href="/doc/Work" title="Work">works</a>, where the second
	// work is based on music or text from the first, but isn’t directly a
	// revision or an arrangement of it.
	LinkType_BasedOn_Work_Work LinkType = 314
	// This links an artist to that artist’s page at <a
	// href="https://www.bbc.co.uk/music">BBC Music</a>.
	LinkType_BbcMusicPage_Artist_URL LinkType = 190
	// This links an artist to an online biography for that artist.
	LinkType_Biography_Artist_URL LinkType = 182
	// This relationship type is used to link an artist to their blog.
	LinkType_Blog_Artist_URL LinkType = 199
	// This relationship type is used to link a label to its blog.
	LinkType_Blog_Label_URL LinkType = 224
	// This relationship type can be used to link a place to its blog
	LinkType_Blog_Place_URL LinkType = 627
	// Points to the BookBrainz page for this artist.
	LinkType_BookBrainz_Artist_URL LinkType = 852
	// Points to the BookBrainz page for this label.
	LinkType_BookBrainz_Label_URL LinkType = 851
	// Points to the BookBrainz page for this release group.
	LinkType_BookBrainz_ReleaseGroup_URL LinkType = 853
	// Points to the BookBrainz page for this release.
	LinkType_BookBrainz_Release_URL LinkType = 850
	// Points to the BookBrainz page for this work.
	LinkType_BookBrainz_URL_Work LinkType = 854
	// This credits a person who was responsible for booking the studio or
	// performance venue where the recording was recorded.
	LinkType_Booking_Artist_Recording LinkType = 134
	// This credits a person who was responsible for booking the studio or
	// performance venue where the release was recorded.
	LinkType_Booking_Artist_Release LinkType = 23
	// This links to a catalog or list of records published by the label.
	LinkType_CatalogSite_Label_URL LinkType = 212
	// This relationship is used to link a catalogue work series to a person who
	// was involved in compiling it.
	LinkType_Catalogued_Artist_Series LinkType = 751
	// This indicates the chorus master of a choir which performed on this
	// recording.
	LinkType_ChorusMaster_Artist_Recording LinkType = 152
	// This indicates the chorus master of a choir which performed on this release.
	LinkType_ChorusMaster_Artist_Release LinkType = 53
	// This is used to specify that an <a href="/doc/Artist"
	// title="Artist">artist</a> collaborated on a short-term project, for cases
	// where artist credits can’t be used.
	LinkType_Collaboration_Artist_Artist LinkType = 102
	// This indicates that a recording is a compilation of several other
	// recordings. This applies to one long recording that contains multiple songs,
	// one after the other, in which the audio material of the original recordings
	// has not been altered. If the tracks are pitched or blended into each other,
	// the <a href="/relationship/451076df-61cf-46ab-9921-555cab2f050d">DJ-mix
	// relationship type</a> may be more appropriate.
	LinkType_Compilation_Recording_Recording LinkType = 228
	// This indicates the person who selected the tracks and the sequence for a
	// compilation. This applies to one long recording which contains multiple
	// songs, one after the other. If the tracks are pitched or blended into each
	// other, it is more appropriate to credit this person as a <a
	// href="/relationship/28338ee6-d578-485a-bb53-61dbfd7c6545">DJ-mixer</a>.
	LinkType_Compiler_Artist_Recording LinkType = 147
	// This indicates the person who selected the tracks and the sequence for a
	// compilation. If the tracks are pitched or blended into each other, it is
	// more appropriate to credit this person as a <a
	// href="/relationship/9162dedd-790c-446c-838e-240f877dbfe2">DJ-mixer</a>.
	LinkType_Compiler_Artist_Release LinkType = 48
	// This links a group (often an orchestra) to a composer who has a
	// composer-in-residence position with the group.
	LinkType_ComposerInResidence_Artist_Artist LinkType = 855
	// Indicates the composer for this release, i.e. the artist who wrote the music
	// (not necessarily the lyrics).
	LinkType_Composer_Artist_Release LinkType = 55
	// Indicates the composer for this work, i.e. the artist who wrote the music
	// (not necessarily the lyrics).
	LinkType_Composer_Artist_Work LinkType = 168
	// This indicates an artist who was the concertmaster/leader for an orchestra
	// or band on this recording.
	LinkType_Concertmaster_Artist_Recording LinkType = 760
	// This indicates an artist who was the concertmaster/leader for an orchestra
	// or band on this release.
	LinkType_Concertmaster_Artist_Release LinkType = 759
	// This indicates that a person is, or was, a conductor for a group.
	LinkType_ConductorPosition_Artist_Artist LinkType = 305
	// Links an event to an artist that was a conductor in it.
	LinkType_Conductor_Artist_Event LinkType = 806
	// This indicates an artist who conducted an orchestra, band or choir on this
	// recording.
	LinkType_Conductor_Artist_Recording LinkType = 151
	// This indicates an artist who conducted an orchestra, band or choir on this
	// release.
	LinkType_Conductor_Artist_Release LinkType = 46
	// This relationship indicates the artist is the copyright holder for this
	// release.
	LinkType_Copyright_Artist_Release LinkType = 709
	// This relationship indicates the label is the copyright holder for this
	// release.
	LinkType_Copyright_Label_Release LinkType = 708
	// This credits a person or agency who provided some kind of general creative
	// inspiration during the recording of this recording, without actually
	// contributing to the writing or performance.
	LinkType_CreativeDirection_Artist_Recording LinkType = 146
	// This credits a person or agency who provided some kind of general creative
	// inspiration during the recording of this release group, without actually
	// contributing to the writing or performance.
	LinkType_CreativeDirection_Artist_ReleaseGroup LinkType = 63
	// This indicates that an artist was officially employed by a label in a
	// creative position, such as photographer or graphic designer.
	LinkType_CreativePosition_Artist_Label LinkType = 115
	// This links a recording to the relevant crowdfunding project at a
	// crowdfunding site like Kickstarter or Indiegogo.
	LinkType_Crowdfunding_Recording_URL LinkType = 905
	// This links a release to the relevant crowdfunding project at a crowdfunding
	// site like Kickstarter or Indiegogo.
	LinkType_Crowdfunding_Release_URL LinkType = 906
	// This is used to link a <a href="/doc/Mix_Terminology#DJ_mix">DJ-mixed</a>
	// recording to each of the source recordings. See <a
	// href="/relationship/28338ee6-d578-485a-bb53-61dbfd7c6545">DJ-mixer</a> for
	// crediting the person who created the DJ-mix.
	LinkType_DJMix_Recording_Recording LinkType = 227
	// This is used to link a release group containing a <a
	// href="/doc/Mix_Terminology#DJ_mix">DJ-mixed</a> version of a release to the
	// release group containing the source release. See <a
	// href="/relationship/9162dedd-790c-446c-838e-240f877dbfe2">DJ-mixer</a> for
	// crediting the person who created the DJ-mix.
	LinkType_DJMix_ReleaseGroup_ReleaseGroup LinkType = 8
	// This links a release group to an artist it is dedicated to. This is for
	// dedications such as "This album is dedicated to the memory of Artist" - for
	// tribute albums consisting of covers of the artist, use the <a
	// href="/relationship/5e2907db-49ec-4a48-9f11-dfb99d2603ff">tribute
	// relationship</a>.
	LinkType_DedicatedTo_Artist_ReleaseGroup LinkType = 868
	// This indicates the work is dedicated to a specific person. This is most
	// common for classical works, but also exists in other genres to a degree.
	LinkType_Dedication_Artist_Work LinkType = 846
	// derived from
	LinkType_Derivation_Instrument_Instrument LinkType = 737
	// This indicates a person or agency who did design or illustration for the
	// track.
	LinkType_DesignIllustration_Artist_Recording LinkType = 130
	// This indicates a person or agency who did design or illustration for the
	// release.
	LinkType_DesignIllustration_Artist_Release LinkType = 19
	// This link points to a page for a particular release within a discography for
	// an artist or label.
	LinkType_DiscographyEntry_Release_URL LinkType = 288
	// This links an artist to an online discography of their works. The
	// discography should provide a summary of most, if not all, releases by the
	// artist, and be as comprehensive as possible.
	LinkType_DiscographyPage_Artist_URL LinkType = 184
	// This is used to link the Discogs page for this artist.
	LinkType_Discogs_Artist_URL LinkType = 180
	// This is used to link the Discogs page for this genre/style.
	LinkType_Discogs_Genre_URL LinkType = 1089
	// This is used to link the Discogs page for this label.
	LinkType_Discogs_Label_URL LinkType = 217
	// This is used to link a place to the equivalent entry in Discogs.
	LinkType_Discogs_Place_URL LinkType = 705
	// This is used to link the Discogs page for this release group.
	LinkType_Discogs_ReleaseGroup_URL LinkType = 90
	// This is used to link the Discogs page for this release.
	LinkType_Discogs_Release_URL LinkType = 76
	// This is used to link a series to the equivalent entry in Discogs.
	LinkType_Discogs_Series_URL LinkType = 747
	// Indicates a webpage where you can download an artist’s work for free.
	LinkType_DownloadForFree_Artist_URL LinkType = 177
	// This links a recording to a page where it can be legally downloaded for
	// free.
	LinkType_DownloadForFree_Recording_URL LinkType = 255
	// This links a release to a page where it can be legally downloaded for free.
	LinkType_DownloadForFree_Release_URL LinkType = 75
	// This links an edit to its original recording. An "edit", for this
	// relationship, can be a radio edit (which involves streamlining a longer
	// track to around the 3 minute mark in order to make it suitable for radio
	// play), or a shortened, censored, or otherwise edited version of the same
	// material. The person who edited the recording can be linked using the <a
	// href="/relationship/40dff87a-e475-4aa6-b615-9935b564d756">editor
	// relationship type</a>.
	LinkType_Edit_Recording_Recording LinkType = 309
	// Links a recording to the place it was edited at.
	LinkType_EditedAt_Place_Recording LinkType = 819
	// Links a release to the place it was edited at.
	LinkType_EditedAt_Place_Release LinkType = 820
	// Links a recording to the area it was edited in. Use only when the place is
	// unknown!
	LinkType_EditedIn_Area_Recording LinkType = 821
	// Links a release to the area it was edited in. Use only when the place is
	// unknown!
	LinkType_EditedIn_Area_Release LinkType = 822
	// This describes an engineer responsible for either connecting disparate
	// elements of the audio recording, or otherwise redistributing material
	// recorded in the sessions. This is usually secondary, or additional to the
	// work done by the mix engineer. It can also involve streamlining a longer
	// track to around the 3 minute mark in order to make it suitable for radio
	// play (a "radio edit").
	LinkType_Editor_Artist_Recording LinkType = 144
	// This describes an engineer responsible for either connecting disparate
	// elements of the audio recording, or otherwise redistributing material
	// recorded in the sessions. This is usually secondary, or additional to the
	// work done by the mix engineer. It can also involve streamlining a longer
	// track to around the 3 minute mark in order to make it suitable for radio
	// play (a "radio edit").
	LinkType_Editor_Artist_Release LinkType = 38
	// This indicates that an artist was officially employed by a label as an
	// engineer.
	LinkType_EngineerPosition_Artist_Label LinkType = 120
	// Describes the fact a person was contracted by a place as an engineer.
	LinkType_EngineerPosition_Artist_Place LinkType = 701
	// This describes an engineer who performed a general engineering role.
	LinkType_Engineer_Artist_Recording LinkType = 138
	// This describes an engineer who performed a general engineering role.
	LinkType_Engineer_Artist_Release LinkType = 28
	// Links a recording to the place it was engineered at.
	LinkType_EngineeredAt_Place_Recording LinkType = 813
	// Links a release to the place it was engineered at.
	LinkType_EngineeredAt_Place_Release LinkType = 812
	// Links a recording to the area it was engineered in. Use only when the place
	// is unknown!
	LinkType_EngineeredIn_Area_Recording LinkType = 814
	// Links a release to the area it was engineered in. Use only when the place is
	// unknown!
	LinkType_EngineeredIn_Area_Release LinkType = 815
	// This links an artist to a fan-created website.
	LinkType_Fanpage_Artist_URL LinkType = 172
	// This links a label to a fan-created website.
	LinkType_Fanpage_Label_URL LinkType = 214
	// This relationship type is <strong>deprecated</strong>! If two recordings are
	// identical, please merge them.
	LinkType_FirstTrackRelease_Recording_Recording LinkType = 238
	// This relationship type can be used to link a place (generally a studio or
	// venue) to the person(s) who founded it.
	LinkType_Founder_Artist_Place LinkType = 832
	// This relationship type links genres to the areas they originate from.
	LinkType_GenreOrigin_Area_Genre LinkType = 1088
	// Points to the Geonames page for this area.
	LinkType_Geonames_Area_URL LinkType = 713
	// This credits the people or agency who did the graphic design, arranging
	// pieces of content into a coherent and aesthetically-pleasing sleeve design.
	LinkType_GraphicDesign_Artist_Recording LinkType = 125
	// This credits the people or agency who did the graphic design, arranging
	// pieces of content into a coherent and aesthetically-pleasing sleeve design.
	LinkType_GraphicDesign_Artist_Release LinkType = 27
	// Links an event to a guest performer. Guest performers usually make short
	// appearances during other artist’s set.
	LinkType_GuestPerformer_Artist_Event LinkType = 800
	// This relationship is used to link a catalogue work series to a person whose
	// work it catalogues.
	LinkType_HasCatalogue_Artist_Series LinkType = 750
	// Links an event to the place where it was held.
	LinkType_HeldAt_Event_Place LinkType = 794
	// Links an event to the area where it was held. Use only if the exact place is
	// unknown.
	LinkType_HeldIn_Area_Event LinkType = 793
	// This links to a site describing relevant details about a label’s history.
	LinkType_HistorySite_Label_URL LinkType = 211
	// Links an event to its host/MC. Event hosts usually do introductions to the
	// show or each song.
	LinkType_Host_Artist_Event LinkType = 801
	// This links an artist to its page in <a
	// href="https://www.imdb.com/">IMDb</a>.
	LinkType_IMDB_Artist_URL LinkType = 178
	// This links a label to its page in <a href="https://www.imdb.com/">IMDb</a>.
	LinkType_IMDB_Label_URL LinkType = 313
	// Points to the Internet Movie Database page for this place.
	LinkType_IMDB_Place_URL LinkType = 706
	// This links a soundtrack release to the <a
	// href="https://www.imdb.com/">IMDb</a> page for the movie, show or game of
	// which it is a soundtrack.
	LinkType_IMDB_ReleaseGroup_URL LinkType = 97
	// This links a soundtrack work to the <a href="https://www.imdb.com/">IMDb</a>
	// page for the movie, show or game of which it is a soundtrack.
	LinkType_IMDB_URL_Work LinkType = 843
	// This links an artist to its page in <a
	// href="http://www.imslp.org/">IMSLP</a>.
	LinkType_IMSLP_Artist_URL LinkType = 754
	// Indicates a pictorial image (JPEG, GIF, PNG) of an artist.
	LinkType_Image_Artist_URL LinkType = 173
	// image
	LinkType_Image_Instrument_URL LinkType = 732
	// Indicates a pictorial image (JPEG, GIF, PNG) of a place
	LinkType_Image_Place_URL LinkType = 396
	// This indicates that a record label (company) owns or has the right to use an
	// imprint.
	LinkType_Imprint_Label_Label LinkType = 725
	// information page
	LinkType_InformationPage_Instrument_URL LinkType = 734
	// This indicates the artist who arranged a tune into a form suitable for
	// performance. ’Arrangement’ is used as a catch-all term for all processes
	// that turn a composition into a form that can be played by a specific type of
	// ensemble.
	LinkType_InstrumentArranger_Artist_Recording LinkType = 158
	// This indicates the artist who arranged a tune into a form suitable for
	// performance. ’Arrangement’ is used as a catch-all term for all processes
	// that turn a composition into a form that can be played by a specific type of
	// ensemble.
	LinkType_InstrumentArranger_Artist_Release LinkType = 41
	// This indicates the artist who arranged a tune into a form suitable for
	// performance. ’Arrangement’ is used as a catch-all term for all processes
	// that turn a composition into a form that can be played by a specific type of
	// ensemble.
	LinkType_InstrumentArranger_Artist_Work LinkType = 282
	// This relationship type links instruments to the areas they originate from.
	LinkType_InstrumentOrigin_Area_Instrument LinkType = 752
	// Indicates an artist that performed one or more instruments on this
	// recording.
	LinkType_Instrument_Artist_Recording LinkType = 148
	// Indicates an artist that performed one or more instruments on this release.
	LinkType_Instrument_Artist_Release LinkType = 44
	// Indicates a musician doing long-time instrumental support for another one on
	// albums and/or at concerts. This is a person-to-artist relationship that
	// normally applies to well-known solo artists, although it can sometimes apply
	// to groups.
	LinkType_InstrumentalSupportingMusician_Artist_Artist LinkType = 105
	// This links an artist to an URL containing an interview with that artist.
	LinkType_Interview_Artist_URL LinkType = 707
	// Indicates that two persons were romantically involved with each other
	// without being married.
	LinkType_InvolvedWith_Artist_Artist LinkType = 112
	// This links an artist’s performance name (a stage name or alias) with their
	// legal name.
	LinkType_IsPerson_Artist_Artist LinkType = 108
	// This describes a situation where one label is distributing (part of) another
	// label’s catalog, in a country/region of the world, during a period of
	// time.
	LinkType_LabelDistribution_Label_Label LinkType = 203
	// This relationship type can be used to link a label to the person(s) who
	// founded it.
	LinkType_LabelFounder_Artist_Label LinkType = 116
	// This describes a situation where one label is (or was) a subsidiary of
	// another label, during a given period of time. This should be used either to
	// describe the fact a label is a subdivision of another one, or, through
	// corporate acquisition of the former label, has become a subdivision of
	// another one.
	LinkType_LabelOwnership_Label_Label LinkType = 200
	// This describes a situation where a label has changed its name, either for
	// purely aesthetic reasons or following a buyout/sellout/spin-off. Extra care
	// should be taken with cases where complicated merge/split/restructure
	// financial operations are done. For example, it’s not a good idea to rename
	// the label <a href="/label/99a24d71-54c1-4d3f-88cc-00fbcc4fce83">Verve</a>
	// into <a href="/label/4fb00dfd-7674-44c0-bf67-79daf8c61767">The Verve Music
	// Group</a>, as Verve continued its existence thereafter as an imprint.
	LinkType_LabelRename_Label_Label LinkType = 202
	// This relationship type links an artist to its corresponding page at Last.fm
	LinkType_Lastfm_Artist_URL LinkType = 840
	// This relationship type links an event to its corresponding page at Last.fm
	LinkType_Lastfm_Event_URL LinkType = 839
	// This relationship type links a label to its corresponding page at Last.fm
	LinkType_Lastfm_Label_URL LinkType = 838
	// This relationship type links a place to its corresponding page at Last.fm
	LinkType_Lastfm_Place_URL LinkType = 837
	// Links a release with a launch event for it.
	LinkType_LaunchEvent_Event_Release LinkType = 796
	// Links a release group with a launch event for it.
	LinkType_LaunchEvent_Event_ReleaseGroup LinkType = 797
	// This indicates that a person or firm provided legal representation for the
	// recording.
	LinkType_LegalRepresentation_Artist_Recording LinkType = 142
	// This indicates that a person or firm provided legal representation for the
	// release.
	LinkType_LegalRepresentation_Artist_Release LinkType = 22
	// Indicates the librettist for this release.
	LinkType_Librettist_Artist_Release LinkType = 57
	// Indicates the librettist for this work.
	LinkType_Librettist_Artist_Work LinkType = 169
	// This links a recording to a license under which it is available.
	LinkType_License_Recording_URL LinkType = 302
	// This links a release to a license under which it is available.
	LinkType_License_Release_URL LinkType = 301
	// This relationship indicates the company that was the licensee of this
	// release (that is, received a license for it from other company).
	LinkType_Licensee_Label_Release LinkType = 833
	// This relationship indicates the company that was the licensor of this
	// release.
	LinkType_Licensor_Label_Release LinkType = 712
	// This credits the author of liner notes provided with the release (usually on
	// the sleeve). While most time liner notes are just personnel information and
	// production data, in some cases they consist of a blurb of text (article).
	// This relationship type should be used in this last case.
	LinkType_LinerNotes_Artist_Release LinkType = 24
	// This is used to indicate that a release group is a live performance of a
	// studio release group.
	LinkType_LivePerformance_ReleaseGroup_ReleaseGroup LinkType = 17
	// This is used to link a label to an image of its logo.
	LinkType_Logo_Label_URL LinkType = 213
	// Indicates the lyricist for this release.
	LinkType_Lyricist_Artist_Release LinkType = 56
	// Indicates the lyricist for this work.
	LinkType_Lyricist_Artist_Work LinkType = 165
	// This relationship describes a URL where lyrics for the artist can be found.
	// Only sites on the <a
	// href="/doc/Style/Relationships/URLs/Lyrics_whitelist">whitelist</a> are
	// permitted.
	LinkType_Lyrics_Artist_URL LinkType = 197
	// This relationship describes a URL where lyrics for the release group can be
	// found. Only sites on the <a
	// href="/doc/Style/Relationships/URLs/Lyrics_whitelist">whitelist</a> are
	// permitted.
	LinkType_Lyrics_ReleaseGroup_URL LinkType = 93
	// This relationship describes a URL where lyrics for the work can be found.
	// Only sites on the <a
	// href="/doc/Style/Relationships/URLs/Lyrics_whitelist">whitelist</a> are
	// permitted.
	LinkType_Lyrics_URL_Work LinkType = 271
	// Links an event to (one of) its main performer(s).
	LinkType_MainPerformer_Artist_Event LinkType = 798
	// Links a release to the area it was manufactured ("made") in.
	LinkType_ManufacturedIn_Area_Release LinkType = 835
	// This indicates the organization that markets a release. This is
	// <strong>not</strong> the same concept as the <a href="/doc/Label">record
	// label</a>.
	LinkType_Marketed_Label_Release LinkType = 848
	// This links artists who were married.
	LinkType_Married_Artist_Artist LinkType = 111
	// This is used to indicate that the recording is a <a
	// href="/doc/Mix_Terminology#mash-up">mash-up</a> of two (or more) other
	// recordings.
	LinkType_MashesUp_Recording_Recording LinkType = 232
	// This is used to indicate that the release group is a mash-up <a
	// href="/doc/Mix_Terminology#mash-up">mash-up</a> of two (or more) other
	// release groups.
	LinkType_MashesUp_ReleaseGroup_ReleaseGroup LinkType = 10
	// Links a release to the place it was mastered at.
	LinkType_MasteredAt_Place_Release LinkType = 697
	// Links a release to the area it was mastered in. Use only when the place is
	// unknown!
	LinkType_MasteredIn_Area_Release LinkType = 756
	// Describes the fact a person was contracted by a place as a mastering
	// engineer.
	LinkType_MasteringEngineerPosition_Artist_Place LinkType = 704
	// This relationship type is <strong>deprecated</strong>! Please add mastering
	// engineers at the release level.
	LinkType_Mastering_Artist_Recording LinkType = 136
	// Indicates the mastering engineer for this work.
	LinkType_Mastering_Artist_Release LinkType = 42
	// This is used to indicate that a work is a medley of several other songs.
	// This means that the original songs were rearranged to create a new work in
	// the form of a medley. See <a
	// href="/relationship/d3fd781c-5894-47e2-8c12-86cc0e2c8d08">arranger</a> for
	// crediting the person who arranges songs into a medley.
	LinkType_Medley_Work_Work LinkType = 239
	// This indicates a person is a member of a group.
	LinkType_MemberOfBand_Artist_Artist LinkType = 103
	// This indicates that the artist performed a role not covered by other
	// relationship types.
	LinkType_Misc_Artist_Recording LinkType = 129
	// This indicates that the artist performed a role not covered by other
	// relationship types.
	LinkType_Misc_Artist_Release LinkType = 25
	// Indicates a miscellaneous support role. This is usually stated in the liner
	// notes of an album.
	LinkType_Misc_Artist_Work LinkType = 162
	// This relationship type is <strong>deprecated</strong>.
	LinkType_Misc_URL_Work LinkType = 270
	// This links a <a href="/doc/Mix_Terminology#DJ_mix">DJ-mix</a> to the artist
	// who mixed it.
	LinkType_MixDJ_Artist_Recording LinkType = 155
	// This links a <a href="/doc/Mix_Terminology#DJ_mix">DJ-mix</a> to the artist
	// who mixed it.
	LinkType_MixDJ_Artist_Release LinkType = 43
	// This describes an engineer responsible for using a mixing console to mix a
	// recorded track into a single piece of music suitable for release. For
	// remixing, see <a
	// href="/relationship/7950be4d-13a3-48e7-906b-5af562e39544">remixer</a>.
	LinkType_Mix_Artist_Recording LinkType = 143
	// This describes an engineer responsible for using a mixing console to mix a
	// recorded track into a single piece of music suitable for release. For
	// remixing, see <a
	// href="/relationship/ac6a86db-f757-4815-a07e-744428d2382b">remixer</a>.
	LinkType_Mix_Artist_Release LinkType = 26
	// Links a recording to the place it was mixed at.
	LinkType_MixedAt_Place_Recording LinkType = 694
	// Links a release to the place it was mixed at.
	LinkType_MixedAt_Place_Release LinkType = 696
	// Links a recording to the area it was mixed in. Use only when the place is
	// unknown!
	LinkType_MixedIn_Area_Recording LinkType = 758
	// Links a release to the area it was mixed in. Use only when the place is
	// unknown!
	LinkType_MixedIn_Area_Release LinkType = 757
	// Describes the fact a person was contracted by a place as a mixing engineer.
	LinkType_MixingEngineerPosition_Artist_Place LinkType = 703
	// This is used to link a music video to the corresponding audio recording.
	LinkType_MusicVideo_Recording_Recording LinkType = 857
	// This relationship type links an artist to their Myspace page.
	LinkType_Myspace_Artist_URL LinkType = 189
	// This relationship type links a label to its Myspace page.
	LinkType_Myspace_Label_URL LinkType = 215
	// This relationship type can be used to link a MusicBrainz place to the
	// equivalent entry in Myspace.
	LinkType_Myspace_Place_URL LinkType = 462
	// Indicates the official homepage for an artist.
	LinkType_OfficialHomepage_Artist_URL LinkType = 183
	// Indicates the official homepage for an event.
	LinkType_OfficialHomepage_Event_URL LinkType = 782
	// Indicates the official homepage for a place.
	LinkType_OfficialHomepage_Place_URL LinkType = 363
	// This relationship type is used to link a release group to an official
	// website created specifically for the release group.
	LinkType_OfficialHomepage_ReleaseGroup_URL LinkType = 287
	// Indicates the official homepage for a series.
	LinkType_OfficialHomepage_Series_URL LinkType = 745
	// Indicates the official homepage for a label.
	LinkType_OfficialSite_Label_URL LinkType = 219
	// This relationship type links an artist to their online community page(s). An
	// online community is a group where any member can comment and contribute
	// content. The artist may or may not be a member of the group. Examples
	// include forums, LiveJournal communities and groups on Facebook, Last.fm and
	// Flickr.
	LinkType_OnlineCommunity_Artist_URL LinkType = 185
	// Links an event to an orchestra that performed in it.
	LinkType_Orchestra_Artist_Event LinkType = 807
	// This links two <a href="/doc/Work" title="Work">works</a> where one work is
	// an orchestration of the other.
	LinkType_Orchestration_Work_Work LinkType = 316
	// This indicates the person who orchestrated the recording. Orchestration is a
	// special type of arrangement. It means the adaptation of a composition for an
	// orchestra, done in a way that the musical substance remains essentially
	// unchanged. The orchestrator is also responsible for writing scores for an
	// orchestra, band, choral group, individual instrumentalist(s) or vocalist(s).
	// In practical terms it consists of deciding which instruments should play
	// which notes in a piece of music.
	LinkType_Orchestrator_Artist_Recording LinkType = 300
	// This indicates the person who orchestrated the release. Orchestration is a
	// special type of arrangement. It means the adaptation of a composition for an
	// orchestra, done in a way that the musical substance remains essentially
	// unchanged. The orchestrator is also responsible for writing scores for an
	// orchestra, band, choral group, individual instrumentalist(s) or vocalist(s).
	// In practical terms it consists of deciding which instruments should play
	// which notes in a piece of music.
	LinkType_Orchestrator_Artist_Release LinkType = 40
	// This indicates the person who orchestrated the work. Orchestration is a
	// special type of arrangement. It means the adaptation of a composition for an
	// orchestra, done in a way that the musical substance remains essentially
	// unchanged. The orchestrator is also responsible for writing scores for an
	// orchestra, band, choral group, individual instrumentalist(s) or vocalist(s).
	// In practical terms it consists of deciding which instruments should play
	// which notes in a piece of music.
	LinkType_Orchestrator_Artist_Work LinkType = 164
	// This relationship links an organist to the place(s) (most commonly religious
	// buildings) at which they are the resident organist.
	LinkType_Organist_Artist_Place LinkType = 856
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_Area_URL LinkType = 730
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_Artist_URL LinkType = 188
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_Event_URL LinkType = 803
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_Genre_URL LinkType = 1086
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_Label_URL LinkType = 222
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_Place_URL LinkType = 561
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_Recording_URL LinkType = 306
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_ReleaseGroup_URL LinkType = 96
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_Release_URL LinkType = 82
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_Series_URL LinkType = 746
	// This links an entity to the equivalent entry in another database. Please
	// respect the <a
	// href="/doc/Other_Databases_Relationship_Type/Whitelist">whitelist</a>.
	LinkType_OtherDatabases_URL_Work LinkType = 273
	// This links two versions of a <a href="/doc/Work" title="Work">work</a>.
	LinkType_OtherVersion_Work_Work LinkType = 241
	// Indicates a parent-child relationship.
	LinkType_Parent_Artist_Artist LinkType = 109
	// This relationship type is <strong>deprecated</strong>! Please enter a
	// release with multiple discs as a single release containing multiple discs.
	LinkType_PartOfSet_Release_Release LinkType = 1
	// Designates that one area is contained by another.
	LinkType_PartOf_Area_Area LinkType = 356
	// Indicates that the artist is part of a series.
	LinkType_PartOf_Artist_Series LinkType = 996
	// Indicates that the event is part of a series.
	LinkType_PartOf_Event_Series LinkType = 802
	// Indicates that the recording is part of a series.
	LinkType_PartOf_Recording_Series LinkType = 740
	// Indicates that the release group is part of a series.
	LinkType_PartOf_ReleaseGroup_Series LinkType = 742
	// Indicates that the release is part of a series.
	LinkType_PartOf_Release_Series LinkType = 741
	// Indicates that the work is part of a series.
	LinkType_PartOf_Series_Work LinkType = 743
	// This indicates that an event is made up of multiple parts (e.g. a festival
	// happening on multiple venues over the course of a few days).
	LinkType_Parts_Event_Event LinkType = 818
	// parts
	LinkType_Parts_Instrument_Instrument LinkType = 739
	// This indicates that a place is part of another place.
	LinkType_Parts_Place_Place LinkType = 717
	// This indicates that a work is made up of multiple parts (e.g. an orchestral
	// suite broken into movements)
	LinkType_Parts_Work_Work LinkType = 281
	// This is used to link works to their recordings.
	LinkType_Performance_Recording_Work LinkType = 278
	// Indicates an artist that performed on this recording.
	LinkType_Performer_Artist_Recording LinkType = 156
	// Indicates an artist that performed on this release.
	LinkType_Performer_Artist_Release LinkType = 51
	// Indicates an orchestra that performed on this recording.
	LinkType_PerformingOrchestra_Artist_Recording LinkType = 150
	// Indicates an orchestra that performed on this release.
	LinkType_PerformingOrchestra_Artist_Release LinkType = 45
	// This indicates a personal production label for an artist. A personal label
	// is a small label (usually a subdivision of a larger one) that exclusively
	// handles releases by that artist.
	LinkType_PersonalLabel_Artist_Label LinkType = 723
	// This indicates a personal publishing label for an artist. A personal
	// publishing label is a small label (usually a subdivision of a larger one)
	// that exclusively handles the rights to works by that artist.
	LinkType_PersonalPublisher_Artist_Label LinkType = 724
	// This relationship indicates the artist is the <a
	// href="//en.wikipedia.org/wiki/Sound_recording_copyright_symbol">phonographic
	// copyright</a> holder for this recording.
	LinkType_PhonographicCopyright_Artist_Recording LinkType = 869
	// This relationship indicates the artist is the <a
	// href="//en.wikipedia.org/wiki/Sound_recording_copyright_symbol">phonographic
	// copyright</a> holder for this release.
	LinkType_PhonographicCopyright_Artist_Release LinkType = 710
	// This relationship indicates the label is the <a
	// href="//en.wikipedia.org/wiki/Sound_recording_copyright_symbol">phonographic
	// copyright</a> holder for this recording.
	LinkType_PhonographicCopyright_Label_Recording LinkType = 867
	// This relationship indicates the label is the <a
	// href="//en.wikipedia.org/wiki/Sound_recording_copyright_symbol">phonographic
	// copyright</a> holder for this release.
	LinkType_PhonographicCopyright_Label_Release LinkType = 711
	// This credits a person or agency whose photographs are included as part of a
	// recording.
	LinkType_Photography_Artist_Recording LinkType = 123
	// This credits a person or agency whose photographs are included as part of a
	// release.
	LinkType_Photography_Artist_Release LinkType = 20
	// This relationship type links an event to a promotional poster for the event.
	LinkType_Poster_Event_URL LinkType = 808
	// Indicates the area where the work had its first performance
	LinkType_Premiere_Area_Work LinkType = 715
	// Indicates the event where the work had its first performance
	LinkType_Premiere_Event_Work LinkType = 845
	// Indicates the place where the work had its first performance
	LinkType_Premiere_Place_Work LinkType = 716
	// Indicates an artist (generally a composer) this work was previously
	// attributed to, but who is currently confirmed (or very strongly suspected)
	// not to be the real author.
	LinkType_PreviousAttribution_Artist_Work LinkType = 834
	// This is used to link an artist to its primary concert venue.
	LinkType_PrimaryConcertVenue_Artist_Place LinkType = 714
	// Links a release to the area it was printed in.
	LinkType_PrintedIn_Area_Release LinkType = 849
	// Links a recording to the place it was produced at.
	LinkType_ProducedAt_Place_Recording LinkType = 825
	// Links a release to the place it was produced at.
	LinkType_ProducedAt_Place_Release LinkType = 824
	// Links a recording to the area it was produced in. Use only when the place is
	// unknown!
	LinkType_ProducedIn_Area_Recording LinkType = 827
	// Links a release to the area it was produced in. Use only when the place is
	// unknown!
	LinkType_ProducedIn_Area_Release LinkType = 826
	// This indicates that an artist was officially employed by a label as a
	// producer.
	LinkType_ProducerPosition_Artist_Label LinkType = 117
	// This indicates an artist who is responsible for the creative and practical
	// day-to-day aspects involved with making a musical recording.
	LinkType_Producer_Artist_Recording LinkType = 141
	// This indicates an artist who is responsible for the creative and practical
	// day-to-day aspects involved with making a musical recording.
	LinkType_Producer_Artist_Release LinkType = 30
	// This links a recording to the artist who did the programming for electronic
	// instruments used on the recording. In the most cases, the ’electronic
	// instrument’ is either a synthesizer or a drum machine.
	LinkType_Programming_Artist_Recording LinkType = 132
	// This links a release to the artist who did the programming for electronic
	// instruments used on the release. In the most cases, the ’electronic
	// instrument’ is either a synthesizer or a drum machine.
	LinkType_Programming_Artist_Release LinkType = 37
	// This indicates the organization that promotes (or contracts out promotion)
	// for a release. This is <strong>not</strong> the same concept as the <a
	// href="/doc/Label">record label</a>.
	LinkType_Promoted_Label_Release LinkType = 359
	// This indicates the organization which releases a release. This is
	// <strong>not</strong> the same concept as the <a href="/doc/Label">record
	// label</a>.
	LinkType_Published_Label_Release LinkType = 362
	// Indicates the publisher of this recording. This is <strong>not</strong> the
	// same concept as the <a href="/doc/Label">record label</a>.
	LinkType_Publishing_Artist_Recording LinkType = 127
	// Indicates the publisher of this release. This is <strong>not</strong> the
	// same concept as the <a href="/doc/Label">record label</a>.
	LinkType_Publishing_Artist_Release LinkType = 32
	// Indicates the publisher of this work. This is <strong>not</strong> the same
	// concept as the <a href="/doc/Label">record label</a>.
	LinkType_Publishing_Artist_Work LinkType = 161
	// This relationship is deprecated. To indicate work publishers, add label-work
	// relationships. To indicate (P) holders, use the phonographic copyright
	// relationship.
	LinkType_Publishing_Label_Recording LinkType = 206
	// Indicates the publisher of this work. This is <strong>not</strong> the same
	// concept as the <a href="/doc/Label">record label</a>.
	LinkType_Publishing_Label_Work LinkType = 208
	// This is used to link to a page where the artist’s releases can be
	// purchased for download.
	LinkType_PurchaseForDownload_Artist_URL LinkType = 176
	// This is used to link to a page where the recording can be purchased for
	// download.
	LinkType_PurchaseForDownload_Recording_URL LinkType = 254
	// This is used to link to a page where the release can be purchased for
	// download.
	LinkType_PurchaseForDownload_Release_URL LinkType = 74
	// This relationship type is used to link to a page where the artist’s
	// releases can be purchased for mail order.
	LinkType_PurchaseForMailOrder_Artist_URL LinkType = 175
	// This relationship type is used to link to a page where the release can be
	// purchased for mail order.
	LinkType_PurchaseForMailOrder_Release_URL LinkType = 79
	// This links an artist to the equivalent entry at PureVolume.
	LinkType_Purevolume_Artist_URL LinkType = 174
	// Links a recording to the event it was recorded at.
	LinkType_RecordedAt_Event_Recording LinkType = 809
	// Links a release to the event it was recorded at.
	LinkType_RecordedAt_Event_Release LinkType = 810
	// Links a recording to the place it was recorded at.
	LinkType_RecordedAt_Place_Recording LinkType = 693
	// Links a release to the place it was recorded at.
	LinkType_RecordedAt_Place_Release LinkType = 695
	// Links a recording to the area it was recorded in. Use only when the place is
	// unknown!
	LinkType_RecordedIn_Area_Recording LinkType = 698
	// Links a release to the area it was recorded in. Use only when the place is
	// unknown!
	LinkType_RecordedIn_Area_Release LinkType = 699
	// This indicates that an artist had a recording contract with a label.
	LinkType_RecordingContract_Artist_Label LinkType = 121
	// Describes the fact a person was contracted by a place as a recording
	// engineer.
	LinkType_RecordingEngineerPosition_Artist_Place LinkType = 702
	// This describes an engineer responsible for committing the performance to
	// tape. This can be as complex as setting up the microphones, amplifiers, and
	// recording devices, or as simple as pressing the ’record’ button on a
	// 4-track.
	LinkType_Recording_Artist_Recording LinkType = 128
	// This describes an engineer responsible for committing the performance to
	// tape. This can be as complex as setting up the microphones, amplifiers, and
	// recording devices, or as simple as pressing the ’record’ button on a
	// 4-track.
	LinkType_Recording_Artist_Release LinkType = 36
	// related to
	LinkType_RelatedTo_Instrument_Instrument LinkType = 738
	// This relationship type is <strong>deprecated</strong>! <a
	// href="/doc/Style/Recording#Recordings_with_Different_Mastering">Different
	// remasters should be merged.</a>
	LinkType_Remaster_Recording_Recording LinkType = 236
	// This links two releases, where one is a <a
	// href="/doc/Mix_Terminology#remaster">remaster</a> of the other. This is
	// usually done to improve the audio quality or to adjust for more modern
	// playback equipment. The process generally doesn’t involve changing the
	// music in any artistically important way. It may, however, result in
	// recordings that differ in length by a few seconds.
	LinkType_Remaster_Release_Release LinkType = 6
	// This links a <a href="/doc/Mix_Terminology#remix">remixed</a> recording to
	// the source recording.
	LinkType_Remix_Recording_Recording LinkType = 230
	// This links a <a href="/doc/Mix_Terminology#remix">remix</a> release group to
	// the source release group and is used to indicate that the release group
	// includes remixed versions of all (or most of) the tracks in the other
	// release group.
	LinkType_Remix_ReleaseGroup_ReleaseGroup LinkType = 9
	// Links a recording to the place it was remixed at.
	LinkType_RemixedAt_Place_Recording LinkType = 829
	// Links a release to the place it was remixed at.
	LinkType_RemixedAt_Place_Release LinkType = 828
	// Links a recording to the area it was remixed in. Use only when the place is
	// unknown!
	LinkType_RemixedIn_Area_Recording LinkType = 830
	// Links a release to the area it was remixed in. Use only when the place is
	// unknown!
	LinkType_RemixedIn_Area_Release LinkType = 831
	// This links a recording to the person who remixed it by taking one or more
	// other tracks, substantially altering them and mixing them together with
	// other material. Note that this includes the artist who created a mash-up or
	// used samples as well.
	LinkType_Remixer_Artist_Recording LinkType = 153
	// This links a release to the person who remixed it by taking one or more
	// other tracks, substantially altering them and mixing them together with
	// other material. Note that this includes the artist who created a mash-up or
	// used samples as well.
	LinkType_Remixer_Artist_Release LinkType = 47
	// This links a postponed event to the later rescheduled event.
	LinkType_RescheduledAs_Event_Event LinkType = 836
	// Indicates a webpage that reviews the event in question.
	LinkType_Review_Event_URL LinkType = 842
	// Indicates a webpage that reviews the release (group) in question.
	LinkType_Review_ReleaseGroup_URL LinkType = 94
	// Indicates that an artist revised a work. In most cases, this will be the
	// original composer revising the work at a later date.
	LinkType_RevisedBy_Artist_Work LinkType = 844
	// This links different revisions of the same <a href="/doc/Work"
	// title="Work">work</a>.
	LinkType_RevisionOf_Work_Work LinkType = 315
	// This indicates the rights society associated with a release. The rights
	// society is an organization which collects royalties on behalf of the
	// artists.
	LinkType_RightsSociety_Label_Release LinkType = 349
	// Indicates that the recording contains samples from material by the indicated
	// artist. Use this only if you really cannot figure out the particular
	// recording that has been sampled.
	LinkType_SamplesFromArtist_Artist_Recording LinkType = 154
	// Indicates that the release contains samples from material by the indicated
	// artist. Use this only if you really cannot figure out the particular
	// recording that has been sampled.
	LinkType_SamplesFromArtist_Artist_Release LinkType = 49
	// Indicates that the recording contains samples from another.
	LinkType_SamplesMaterial_Recording_Recording LinkType = 231
	// Indicates that the recording contains samples from this release.
	LinkType_SamplesMaterial_Recording_Release LinkType = 69
	// This describes a URL where a score / sheet music for the work can be found.
	LinkType_Score_URL_Work LinkType = 274
	// This is used to link an artist to its corresponding page in SecondHandSongs
	// database.
	LinkType_Secondhandsongs_Artist_URL LinkType = 307
	// This is used to link a release to its corresponding page in SecondHandSongs
	// database.
	LinkType_Secondhandsongs_Release_URL LinkType = 308
	// This is used to link a work to its corresponding page in SecondHandSongs
	// database.
	LinkType_Secondhandsongs_URL_Work LinkType = 280
	// This relationship type links an artist to its corresponding page at
	// setlist.fm
	LinkType_Setlistfm_Artist_URL LinkType = 816
	// This relationship type links an event to its corresponding page at
	// setlist.fm
	LinkType_Setlistfm_Event_URL LinkType = 811
	// This relationship type links a place to its corresponding page at setlist.fm
	LinkType_Setlistfm_Place_URL LinkType = 817
	// This relationship links the release of a show’s episode (for example a
	// podcast) to the show notes for this episode.
	LinkType_ShowNotes_Release_URL LinkType = 729
	// This links two siblings (brothers or sisters).
	LinkType_Sibling_Artist_Artist LinkType = 110
	// This indicates that a single or EP release group includes at least one track
	// taken from an album release group. This allows a release group to be linked
	// to its associated singles and EPs.
	LinkType_SingleFrom_ReleaseGroup_ReleaseGroup LinkType = 11
	// A social network page is an artist’s own profile page on a <a
	// href="https://en.wikipedia.org/wiki/Social_networking_service">social
	// network</a> which only they (or their management) can post content to. Other
	// people can create their own profiles and interact with the artist, e.g. by
	// adding them as a friend or by commenting on the things that they post.
	// Examples include Facebook pages and profiles, Last.fm users and accounts on
	// Twitter, Instagram and Flickr.
	LinkType_SocialNetwork_Artist_URL LinkType = 192
	// A social network page is an event’s own page on a <a
	// href="https://en.wikipedia.org/wiki/Social_networking_service">social
	// network</a> which only people involved with the event can post content to.
	// Examples include Facebook pages and event entries, and accounts on Twitter,
	// Instagram and Flickr.
	LinkType_SocialNetwork_Event_URL LinkType = 783
	// A social network page is a label’s own page on a <a
	// href="https://en.wikipedia.org/wiki/Social_networking_service">social
	// network</a> which only people involved with the label can post content to.
	// Examples include Facebook pages, and accounts on Twitter, Instagram and
	// Flickr.
	LinkType_SocialNetwork_Label_URL LinkType = 218
	// A social network page is a place’s own page on a <a
	// href="https://en.wikipedia.org/wiki/Social_networking_service">social
	// network</a> which only people involved with the place can post content to.
	// Examples include Facebook pages, and accounts on Twitter, Instagram and
	// Flickr.
	LinkType_SocialNetwork_Place_URL LinkType = 429
	// A social network page is a page for a series on a <a
	// href="https://en.wikipedia.org/wiki/Social_networking_service">social
	// network</a> which only people involved with the series can post content to.
	// Examples include Facebook pages, and accounts on Twitter, Instagram and
	// Flickr.
	LinkType_SocialNetwork_Series_URL LinkType = 784
	// This links an entity to the appropriate listing in the Songfacts database, a
	// user contributed database concerned with the stories behind the songs.
	LinkType_Songfacts_URL_Work LinkType = 289
	// This relationship type links an artist to its corresponding page at
	// Songkick.
	LinkType_Songkick_Artist_URL LinkType = 785
	// This relationship type links an event to its corresponding page at Songkick.
	LinkType_Songkick_Event_URL LinkType = 786
	// This relationship type links a place to its corresponding page at Songkick.
	LinkType_Songkick_Place_URL LinkType = 787
	// This describes an engineer responsible for ensuring that the sounds that the
	// artists make reach the microphones sounding pleasant, without unwanted
	// resonance or noise. Sometimes known as acoustical engineering.
	LinkType_Sound_Artist_Recording LinkType = 133
	// This describes an engineer responsible for ensuring that the sounds that the
	// artists make reach the microphones sounding pleasant, without unwanted
	// resonance or noise. Sometimes known as acoustical engineering.
	LinkType_Sound_Artist_Release LinkType = 29
	// This links an artist to its profile at SoundCloud.
	LinkType_Soundcloud_Artist_URL LinkType = 291
	// This links a label to its profile at SoundCloud.
	LinkType_Soundcloud_Label_URL LinkType = 290
	// This links a series (most commonly, but not necessarily always, a music
	// festival) to its official page at SoundCloud.
	LinkType_Soundcloud_Series_URL LinkType = 870
	// This relationship type is used to link an artist to a site where music can
	// be legally streamed for free, e.g. Spotify.
	LinkType_StreamingMusic_Artist_URL LinkType = 194
	// This relationship type is used to link a track to a site where the track can
	// be legally streamed for free, such as Spotify for audio tracks or YouTube
	// for videos.
	LinkType_StreamingMusic_Recording_URL LinkType = 268
	// This relationship type is used to link a release to a site where the tracks
	// can be legally streamed for free, e.g. Spotify.
	LinkType_StreamingMusic_Release_URL LinkType = 85
	// This relationship type is used to link a track to a site where the track can
	// be legally streamed for a subscription fee, e.g. Tidal. If the site allows
	// free streaming, use "free streaming" instead.
	LinkType_StreamingPaid_Recording_URL LinkType = 979
	// This relationship type is used to link a release to a site where the tracks
	// can be legally streamed for a subscription fee, e.g. Tidal.
	LinkType_StreamingPaid_Release_URL LinkType = 980
	// This links a subgroup to the group from which it was created. This
	// relationship type is the functional equivalent of the <a
	// href="/relationship/5be4c609-9afa-4ea0-910b-12ffb71e3821">member of band
	// type</a> for group-group relationships.
	LinkType_Subgroup_Artist_Artist LinkType = 722
	// Links a series to another series that exists within it.
	LinkType_Subseries_Series_Series LinkType = 823
	// type of
	LinkType_Subtype_Instrument_Instrument LinkType = 736
	// Links an event to (one of) its support act(s).
	LinkType_SupportAct_Artist_Event LinkType = 799
	// Indicates an artist doing long-time instrumental or vocal support for
	// another one on albums and/or at concerts. This is a person-to-artist
	// relationship that normally applies to well-known solo artists, although it
	// can sometimes apply to groups.
	LinkType_SupportingMusician_Artist_Artist LinkType = 104
	// This indicates that a release was released in support of another
	// release.This allows a release to be linked to its supporting singles, EPs,
	// and remix releases. A ’supporting release’ is one which is released to
	// increase sales of an album or to create publicity for an album.
	LinkType_SupportingRelease_Release_Release LinkType = 3
	// This relationship indicates that a person was another’s teacher/student.
	LinkType_Teacher_Artist_Artist LinkType = 847
	// This relationship links a concert tour to the artist(s) the tour is by.
	LinkType_Tour_Artist_Series LinkType = 859
	// This indicates that one release is identical to another release, but that
	// the release title and track titles have been either translated (into another
	// language) or transliterated (into another script).
	LinkType_TranslTracklisting_Release_Release LinkType = 2
	// This relationship specifies that an artist is a <a
	// href="http://en.wikipedia.org/wiki/Tribute_act">tribute</a> to another
	// specific artist/band; that is, it primarily performs covers of that artist.
	// They may also be referred to as cover bands. Some tribute artists may name
	// themselves, dress, and/or act similarly to the artists they pay tribute to.
	LinkType_Tribute_Artist_Artist LinkType = 728
	// This links a release group to an artist, to indicate that it is a tribute
	// album. Tribute albums often have a title in the form "A Tribute to Artist",
	// and they consist of covers of songs by the target artist, played by other
	// (sometimes very unknown) bands, to honor the target artist. Often they are
	// various artist compilations, but a single artist can perform the entire
	// tribute album.
	LinkType_Tribute_Artist_ReleaseGroup LinkType = 65
	// This relationship type links an artist to its corresponding page at <a
	// href="http://vgmdb.net/">VGMdb</a>. VGMdb is a community project dedicated
	// to cataloguing the music of video games and anime.
	LinkType_VGMdb_Artist_URL LinkType = 191
	// This relationship type links an event to its corresponding page at <a
	// href="http://vgmdb.net/">VGMdb</a>. VGMdb is a community project dedicated
	// to cataloguing the music of video games and anime.
	LinkType_VGMdb_Event_URL LinkType = 788
	// This relationship type links a label to its corresponding page at <a
	// href="http://vgmdb.net/">VGMdb</a>. VGMdb is a community project dedicated
	// to cataloguing the music of video games and anime.
	LinkType_VGMdb_Label_URL LinkType = 210
	// This relationship type links a release to its corresponding page <a
	// href="http://vgmdb.net/">VGMdb</a>. VGMdb is a community project dedicated
	// to cataloguing the music of video games and anime.
	LinkType_VGMdb_Release_URL LinkType = 86
	// This points to the <a href="//viaf.org/">VIAF</a> page for this artist. VIAF
	// is an international project to make a common authority file available to
	// libraries across the world. An authority file is similar to an MBID for
	// libraries. (<a
	// href="//en.wikipedia.org/wiki/Virtual_International_Authority_File">more
	// information on Wikipedia</a>)
	LinkType_VIAF_Artist_URL LinkType = 310
	// This points to the <a href="//viaf.org/">VIAF</a> page for this label. VIAF
	// is an international project to make a common authority file available to
	// libraries across the world. An authority file is similar to an MBID for
	// libraries. (<a
	// href="//en.wikipedia.org/wiki/Virtual_International_Authority_File">more
	// information on Wikipedia</a>)
	LinkType_VIAF_Label_URL LinkType = 311
	// This indicates that an artist appears on a music video, but doesn’t
	// actually perform on the audio track.
	LinkType_VideoAppearance_Artist_Recording LinkType = 858
	// This links an artist to a channel, playlist, or user page on a video sharing
	// site containing videos curated by it.
	LinkType_VideoChannel_Artist_URL LinkType = 303
	// This links an event to a channel, playlist, or user page on a video sharing
	// site containing videos curated by it.
	LinkType_VideoChannel_Event_URL LinkType = 804
	// This links a label to a channel, playlist, or user page on a video sharing
	// site containing videos curated by it.
	LinkType_VideoChannel_Label_URL LinkType = 304
	// This links a place to a channel, playlist, or user page on a video sharing
	// site containing videos curated by it.
	LinkType_VideoChannel_Place_URL LinkType = 495
	// This links a series to a channel, playlist, or user page on a video sharing
	// site containing videos curated by it.
	LinkType_VideoChannel_Series_URL LinkType = 805
	// This indicates the artist who arranged a tune into a form suitable for
	// performance. ’Arrangement’ is used as a catch-all term for all processes
	// that turn a composition into a form that can be played by a specific type of
	// ensemble.
	LinkType_VocalArranger_Artist_Recording LinkType = 298
	// This indicates the artist who arranged a tune into a form suitable for
	// performance. ’Arrangement’ is used as a catch-all term for all processes
	// that turn a composition into a form that can be played by a specific type of
	// ensemble.
	LinkType_VocalArranger_Artist_Release LinkType = 296
	// This indicates the artist who arranged a tune into a form suitable for
	// performance. ’Arrangement’ is used as a catch-all term for all processes
	// that turn a composition into a form that can be played by a specific type of
	// ensemble.
	LinkType_VocalArranger_Artist_Work LinkType = 294
	// Indicates a musician doing long-time vocal support for another one on albums
	// and/or at concerts. This is a person-to-artist relationship that normally
	// applies to well-known solo artists, although it can sometimes apply to
	// groups.
	LinkType_VocalSupportingMusician_Artist_Artist LinkType = 107
	// Indicates an artist that performed vocals on this recording.
	LinkType_Vocal_Artist_Recording LinkType = 149
	// Indicates an artist that performed vocals on this release.
	LinkType_Vocal_Artist_Release LinkType = 60
	// This links an (fictional) artist to the person that voice acted it.
	LinkType_VoiceActor_Artist_Artist LinkType = 292
	// Points to the Wikidata page for this area.
	LinkType_Wikidata_Area_URL LinkType = 358
	// Points to the Wikidata page for this artist.
	LinkType_Wikidata_Artist_URL LinkType = 352
	// Points to the Wikidata page for this event.
	LinkType_Wikidata_Event_URL LinkType = 790
	// Points to the Wikidata page for this genre, and will be used to fetch
	// Wikipedia summaries
	LinkType_Wikidata_Genre_URL LinkType = 1087
	// wikidata
	LinkType_Wikidata_Instrument_URL LinkType = 733
	// Points to the Wikidata page for this label.
	LinkType_Wikidata_Label_URL LinkType = 354
	// Points to the Wikidata page for this place
	LinkType_Wikidata_Place_URL LinkType = 594
	// Points to the Wikidata page for this release group.
	LinkType_Wikidata_ReleaseGroup_URL LinkType = 353
	// Points to the Wikidata page for this series.
	LinkType_Wikidata_Series_URL LinkType = 749
	// Points to the Wikidata page for this work.
	LinkType_Wikidata_URL_Work LinkType = 351
	// Points to the Wikipedia page for this area.
	LinkType_Wikipedia_Area_URL LinkType = 355
	// Points to the Wikipedia page for this artist.
	LinkType_Wikipedia_Artist_URL LinkType = 179
	// Points to the Wikipedia page for this event.
	LinkType_Wikipedia_Event_URL LinkType = 789
	// wikipedia
	LinkType_Wikipedia_Instrument_URL LinkType = 731
	// This is used to link a label to its corresponding Wikipedia page.
	LinkType_Wikipedia_Label_URL LinkType = 216
	// Points to the Wikipedia page for this place
	LinkType_Wikipedia_Place_URL LinkType = 595
	// Points to the Wikipedia page for this album.
	LinkType_Wikipedia_ReleaseGroup_URL LinkType = 89
	// Points to the Wikipedia page for this series.
	LinkType_Wikipedia_Series_URL LinkType = 744
	// Points to the Wikipedia page for this work.
	LinkType_Wikipedia_URL_Work LinkType = 279
	// This relationship is used to link a release to the artist responsible for
	// writing the music and/or the words (lyrics, libretto, etc.), when no more
	// specific information is available. If possible, the more specific composer,
	// lyricist and/or librettist types should be used, rather than this
	// relationship type.
	LinkType_Writer_Artist_Release LinkType = 54
	// This relationship is used to link a work to the artist responsible for
	// writing the music and/or the words (lyrics, libretto, etc.), when no more
	// specific information is available. If possible, the more specific composer,
	// lyricist and/or librettist types should be used, rather than this
	// relationship type.
	LinkType_Writer_Artist_Work LinkType = 167
	// This links an artist to the equivalent entry at YouTube.
	LinkType_YouTube_Artist_URL LinkType = 193
	// This relationship type can be used to link an event to the equivalent entry
	// in YouTube. URLs should follow the format
	// http://www.youtube.com/user/&lt;username&gt;
	LinkType_YouTube_Event_URL LinkType = 791
	// This links a label to the equivalent entry at YouTube.
	LinkType_YouTube_Label_URL LinkType = 225
	// This relationship type can be used to link a place to the equivalent entry
	// in YouTube. URLs should follow the format
	// http://www.youtube.com/user/<username>
	LinkType_YouTube_Place_URL LinkType = 528
	// This relationship type can be used to link a series to the equivalent entry
	// in YouTube. URLs should follow the format
	// http://www.youtube.com/user/&lt;username&gt;
	LinkType_YouTube_Series_URL LinkType = 792
)

type Medium

type Medium struct {
	// Format contains the medium's format name.
	// See https://wiki.musicbrainz.org/Release/Format.
	Format MediumFormat
	// Name contains the medium's name (e.g. "Live & Unreleased").
	Name string
	// Tracks contains the medium's tracklist.
	Tracks []Track
}

Medium describes a medium that is part of a release. See https://musicbrainz.org/doc/Medium.

type MediumFormat

type MediumFormat string

MediumFormat describes a medium's format (e.g. CD, cassette, digital media).

const (
	MediumFormat_CD                MediumFormat = "CD"
	MediumFormat_DVD               MediumFormat = "DVD"
	MediumFormat_SACD              MediumFormat = "SACD"
	MediumFormat_DualDisc          MediumFormat = "DualDisc"
	MediumFormat_Other             MediumFormat = "Other"
	MediumFormat_LaserDisc         MediumFormat = "LaserDisc"
	MediumFormat_MiniDisc          MediumFormat = "MiniDisc"
	MediumFormat_Vinyl             MediumFormat = "Vinyl"
	MediumFormat_Cassette          MediumFormat = "Cassette"
	MediumFormat_Cartridge         MediumFormat = "Cartridge"
	MediumFormat_ReelToReel        MediumFormat = "Reel-to-reel"
	MediumFormat_DAT               MediumFormat = "DAT"
	MediumFormat_DigitalMedia      MediumFormat = "Digital Media"
	MediumFormat_WaxCylinder       MediumFormat = "Wax Cylinder"
	MediumFormat_PianoRoll         MediumFormat = "Piano Roll"
	MediumFormat_DCC               MediumFormat = "DCC"
	MediumFormat_HDDVD             MediumFormat = "HD-DVD"
	MediumFormat_DVDAudio          MediumFormat = "DVD-Audio"
	MediumFormat_DVDVideo          MediumFormat = "DVD-Video"
	MediumFormat_BluRay            MediumFormat = "Blu-ray"
	MediumFormat_VHS               MediumFormat = "VHS"
	MediumFormat_VCD               MediumFormat = "VCD"
	MediumFormat_SVCD              MediumFormat = "SVCD"
	MediumFormat_Betamax           MediumFormat = "Betamax"
	MediumFormat_HDCD              MediumFormat = "HDCD"
	MediumFormat_USBFlashDrive     MediumFormat = "USB Flash Drive"
	MediumFormat_slotMusic         MediumFormat = "slotMusic"
	MediumFormat_UMD               MediumFormat = "UMD"
	MediumFormat_7Vinyl            MediumFormat = "7\" Vinyl"
	MediumFormat_10Vinyl           MediumFormat = "10\" Vinyl"
	MediumFormat_12Vinyl           MediumFormat = "12\" Vinyl"
	MediumFormat_CDR               MediumFormat = "CD-R"
	MediumFormat_8cmCD             MediumFormat = "8cm CD"
	MediumFormat_BluSpecCD         MediumFormat = "Blu-spec CD"
	MediumFormat_SHMCD             MediumFormat = "SHM-CD"
	MediumFormat_HQCD              MediumFormat = "HQCD"
	MediumFormat_HybridSACD        MediumFormat = "Hybrid SACD"
	MediumFormat_CDG               MediumFormat = "CD+G"
	MediumFormat_8cmCDG            MediumFormat = "8cm CD+G"
	MediumFormat_CDV               MediumFormat = "CDV"
	MediumFormat_EnhancedCD        MediumFormat = "Enhanced CD"
	MediumFormat_DataCD            MediumFormat = "Data CD"
	MediumFormat_DTSCD             MediumFormat = "DTS CD"
	MediumFormat_Playbutton        MediumFormat = "Playbutton"
	MediumFormat_MusicCard         MediumFormat = "Music Card"
	MediumFormat_DVDplus           MediumFormat = "DVDplus"
	MediumFormat_VinylDisc         MediumFormat = "VinylDisc"
	MediumFormat_35FloppyDisk      MediumFormat = "3.5\" Floppy Disk"
	MediumFormat_EdisonDiamondDisc MediumFormat = "Edison Diamond Disc"
	// Flexi-discs are phonograph records made of a thin, flexible vinyl sheet with
	// a molded-in groove, designed to be playable on a normal phonograph
	// turntable.
	MediumFormat_FlexiDisc  MediumFormat = "Flexi-disc"
	MediumFormat_7FlexiDisc MediumFormat = "7\" Flexi-disc"
	// Shellac records were the most predominant type of gramophone record during
	// the first half of the 20th century.
	MediumFormat_Shellac   MediumFormat = "Shellac"
	MediumFormat_10Shellac MediumFormat = "10\" Shellac"
	MediumFormat_12Shellac MediumFormat = "12\" Shellac"
	MediumFormat_7Shellac  MediumFormat = "7\" Shellac"
	MediumFormat_SHMSACD   MediumFormat = "SHM-SACD"
	// 90 rpm, vertical-cut shellac discs, produced by the Pathé label from 1906
	// to 1932.
	MediumFormat_PatheDisc MediumFormat = "Pathé disc"
	// Video High Density (VHD) was a videodisc format which was marketed
	// predominantly in Japan by JVC.
	MediumFormat_VHD MediumFormat = "VHD"
	// The Capacitance Electronic Disc (CED) is an analog video disc playback
	// system developed by RCA, in which video and audio could be played back on a
	// TV set using a special needle and high-density groove system similar to
	// phonograph records.
	MediumFormat_CED MediumFormat = "CED"
	// Copy Control CD (CCCD) is an umbrella term for CDs released circa 2001-2006
	// containing software that is ostensibly designed to prevent the CD from being
	// ripped. There are a number of software variants: the most well-known are
	// Macrovision’s Cactus Data Shield (CDS) and SunnComm’s MediaMax.
	MediumFormat_CopyControlCD MediumFormat = "Copy Control CD"
)

type Recording

type Recording struct {
	// MBID contains the recording's MBID (for editing an existing recording rather than
	// creating a new one).
	MBID string
	// Name contains the recording's title.
	Name string
	// Artist contains the MBID of the artist primarily credited with the recording.
	// TODO: Drop this in favor of only using Artists?
	Artist string
	// Artists contains detailed information about artists credited with the recording.
	Artists []ArtistCredit
	// Disambiguation differentiates this recording from other recordings with similar names.
	// See https://musicbrainz.org/doc/Disambiguation_Comment.
	Disambiguation string
	// Length contains the recording's duration.
	Length time.Duration
	// Video is true if this is a video recording.
	// Per https://musicbrainz.org/doc/How_to_Add_Standalone_Recordings, "an audio track uploaded to
	// Youtube with a static photo does not qualify as a video, this should be used only for actual
	// videos".
	Video bool
	// ISRCs contains 12-byte alphanumeric codes that identify audio or music video recordings.
	// See https://musicbrainz.org/doc/ISRC.
	ISRCs []string
	// URLs contains relationships between this recording and one or more URLs.
	// See https://musicbrainz.org/doc/Style/Relationships/URLs.
	//
	// As of 20221107, https://musicbrainz.org/recording/create lists the following types:
	//
	//  LinkType_License_Recording_URL ("license")
	//  LinkType_PurchaseForDownload_Recording_URL ("purchase for download")
	//  LinkType_DownloadForFree_Recording_URL ("download for free")
	//  LinkType_StreamingMusic_Recording_URL ("stream for free")
	//  LinkType_StreamingPaid_Recording_URL ("streaming page")
	//  LinkType_Crowdfunding_Recording_URL ("crowdfunding page")
	URLs []URL
	// EditNote contains the note attached to the edit.
	// See https://musicbrainz.org/doc/Edit_Note.
	EditNote string
}

Recording holds data used to seed the "Add Standalone Recording" form at https://musicbrainz.org/recording/create and the edit-recording form at https://musicbrainz.org/recording/<MBID>/edit. See https://musicbrainz.org/doc/Recording for more information about recording entities.

func (*Recording) Description

func (rec *Recording) Description() string

func (*Recording) Finish

func (rec *Recording) Finish(ctx context.Context, db *db.DB) error

func (*Recording) Method

func (rec *Recording) Method() string

I'm not sure how bogus it is to use GET instead of POST here, but there's no documentation about seeding recordings. ¯\_(ツ)_/¯ When I tried using POST, the recording length wasn't accepted (maybe it needs to be MM:SS instead of milliseconds?), and it's generally more annoying to use POST since there's an interstitial page to prevent XSRFs that the user needs to click through.

func (*Recording) Params

func (rec *Recording) Params() url.Values

func (*Recording) Type

func (rec *Recording) Type() Type

func (*Recording) URL

func (rec *Recording) URL() string

type Release

type Release struct {
	// Title contains the release's title.
	Title string
	// ReleaseGroup the MBID of an existing release group.
	// See https://musicbrainz.org/doc/Release_Group.
	ReleaseGroup string
	// Types contains types for a new release group (if ReleaseGroup is empty).
	// See https://wiki.musicbrainz.org/Release_Group/Type.
	Types []ReleaseGroupType
	// Disambiguation differentiates this release from other releases with similar names.
	// See https://musicbrainz.org/doc/Disambiguation_Comment.
	Disambiguation string
	// Annotation contains additional information that doesn't fit in MusicBrainz's data scheme.
	// See https://musicbrainz.org/doc/Annotation.
	Annotation string
	// Barcode contains the release's barcode. "none" indicates that the release has no barcode.
	Barcode string
	// Language contains the release's language as an ISO 639-3 code (e.g. "eng", "deu", "jpn").
	// See https://en.wikipedia.org/wiki/List_of_ISO_639-3_codes.
	Language string
	// Script contains the script of the text on the release as an ISO 15924 code (e.g. "Latn", "Cyrl").
	// See https://en.wikipedia.org/wiki/ISO_15924.
	Script string
	// Status contains the release's status.
	Status ReleaseStatus
	// Packaging contains the release's packaging as an English string.
	// See https://wiki.musicbrainz.org/Release/Packaging.
	Packaging ReleasePackaging
	// Events contains events corresponding to this release.
	Events []ReleaseEvent
	// Labels contains label-related information corresponding to this release.
	Labels []ReleaseLabel
	// ArtistCredits contains artists credited with the release.
	Artists []ArtistCredit
	// Mediums contains the release's media (which themselves contain tracklists).
	Mediums []Medium
	// URLs contains relationships between this release and one or more URLs.
	// See https://musicbrainz.org/doc/Style/Relationships/URLs.
	//
	// As of 20221028, https://musicbrainz.org/release/add lists the following types:
	//  LinkType_PurchaseForDownload_Release_URL ("purchase for download")
	//  LinkType_DownloadForFree_Release_URL ("download for free")
	//  LinkType_PurchaseForMailOrder_Release_URL ("purchase for mail-order")
	//  LinkType_StreamingMusic_Release_URL ("stream for free")
	//  LinkType_DiscographyEntry_Release_URL ("discography entry")
	//  LinkType_License_Release_URL ("license")
	//  LinkType_ShowNotes_Release_URL ("show notes")
	//  LinkType_Crowdfunding_Release_URL ("crowdfunding page")
	//  LinkType_StreamingPaid_Release_URL ("streaming page")
	URLs []URL
	// EditNote contains the note attached to the edit.
	// See https://musicbrainz.org/doc/Edit_Note.
	EditNote string
}

Release holds data used to seed the "Add Release" form at http://musicbrainz.org/release/add. See https://musicbrainz.org/doc/Release for more information about releases and https://wiki.musicbrainz.org/Development/Release_Editor_Seeding for information about seeding this form.

func (*Release) Description

func (rel *Release) Description() string

func (*Release) Finish

func (rel *Release) Finish(ctx context.Context, db *db.DB) error

func (*Release) Method

func (rel *Release) Method() string

func (*Release) Params

func (rel *Release) Params() url.Values

func (*Release) Type

func (rel *Release) Type() Type

func (*Release) URL

func (rel *Release) URL() string

type ReleaseEvent

type ReleaseEvent struct {
	// Year contains the event's year, or 0 if unknown.
	Year int
	// Month contains the event's 1-indexed month, or 0 if unknown.
	Month int
	// Day contains the event's day, or 0 if unknown.
	Day int
	// Country contains the event's country as an ISO code (e.g. "GB", "US", "FR").
	// "XW" corresponds to "[Worldwide]".
	Country string
}

ReleaseEvent contains an event corresponding to a release. Unknown fields can be omitted.

type ReleaseGroupType

type ReleaseGroupType string

ReleaseGroupType describes a release group. A release group can be assigned a single primary type and multiple secondary types.

const (
	ReleaseGroupType_Album         ReleaseGroupType = "Album"          // primary
	ReleaseGroupType_Single        ReleaseGroupType = "Single"         // primary
	ReleaseGroupType_EP            ReleaseGroupType = "EP"             // primary
	ReleaseGroupType_Other         ReleaseGroupType = "Other"          // primary
	ReleaseGroupType_Broadcast     ReleaseGroupType = "Broadcast"      // primary
	ReleaseGroupType_Compilation   ReleaseGroupType = "Compilation"    // secondary
	ReleaseGroupType_Soundtrack    ReleaseGroupType = "Soundtrack"     // secondary
	ReleaseGroupType_Spokenword    ReleaseGroupType = "Spokenword"     // secondary
	ReleaseGroupType_Interview     ReleaseGroupType = "Interview"      // secondary
	ReleaseGroupType_Audiobook     ReleaseGroupType = "Audiobook"      // secondary
	ReleaseGroupType_Live          ReleaseGroupType = "Live"           // secondary
	ReleaseGroupType_Remix         ReleaseGroupType = "Remix"          // secondary
	ReleaseGroupType_DJMix         ReleaseGroupType = "DJ-mix"         // secondary
	ReleaseGroupType_MixtapeStreet ReleaseGroupType = "Mixtape/Street" // secondary
	ReleaseGroupType_Demo          ReleaseGroupType = "Demo"           // secondary
)

type ReleaseLabel

type ReleaseLabel struct {
	// MBID contains the label's MBID if known.
	MBID string
	// CatalogNumber contains the release's catalog number.
	CatalogNumber string
	// Name contains the label's name (to prefill the search field if MBID is empty).
	Name string
}

ReleaseLabel contains label-related information associated with a release.

type ReleasePackaging

type ReleasePackaging string

ReleasePackaging describes a release's packaging.

const (
	// The traditional CD case, made of hard, brittle plastic.
	ReleasePackaging_JewelCase ReleasePackaging = "Jewel Case"
	// A thinner jewel case, commonly used for CD singles.
	ReleasePackaging_SlimJewelCase        ReleasePackaging = "Slim Jewel Case"
	ReleasePackaging_Digipak              ReleasePackaging = "Digipak"
	ReleasePackaging_CardboardPaperSleeve ReleasePackaging = "Cardboard/Paper Sleeve"
	ReleasePackaging_Other                ReleasePackaging = "Other"
	ReleasePackaging_None                 ReleasePackaging = "None"
)

type ReleaseStatus

type ReleaseStatus string

ReleaseStatus describes a release's status.

const (
	// Any release officially sanctioned by the artist and/or their record company.
	// Most releases will fit into this category.
	ReleaseStatus_Official ReleaseStatus = "Official"
	// A give-away release or a release intended to promote an upcoming official
	// release (e.g. pre-release versions, releases included with a magazine,
	// versions supplied to radio DJs for air-play).
	ReleaseStatus_Promotion ReleaseStatus = "Promotion"
	// An unofficial/underground release that was not sanctioned by the artist
	// and/or the record company. This includes unofficial live recordings and
	// pirated releases.
	ReleaseStatus_Bootleg ReleaseStatus = "Bootleg"
	// An alternate version of a release where the titles have been changed. These
	// don’t correspond to any real release and should be linked to the original
	// release using the transl(iter)ation relationship.
	ReleaseStatus_PseudoRelease ReleaseStatus = "Pseudo-Release"
)

type Track

type Track struct {
	// Title contains the track's name.
	Title string
	// Number contains a free-form track number.
	Number string
	// Recording contains the MBID of the recording corresponding to the track.
	Recording string
	// Length contains the track's duration.
	Length time.Duration
	// Artists contains the artists credited with the track.
	Artists []ArtistCredit
}

Track describes the way that a recording is represented on a medium. See https://musicbrainz.org/doc/Track.

type Type

type Type string

Type describes a type of MusicBrainz entity being edited.

const (
	RecordingType Type = "recording"
	ReleaseType   Type = "release"
	InfoType      Type = "info"
)

type URL

type URL struct {
	// URL contains the full URL.
	URL string
	// LinkType contains the link type ID.
	// Applicable link types should end in "<Entity>_URL_Link", depending on the
	// type of the entity being linked to the URL (but note that the LinkType
	// enum may not include all possible values).
	LinkType LinkType
}

URL holds data used to seed forms with an entity's relationship to a URL.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL