Skip to content

Instantly share code, notes, and snippets.

@nicktacular
Last active September 4, 2015 12:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicktacular/92ad1f3981294a901829 to your computer and use it in GitHub Desktop.
Save nicktacular/92ad1f3981294a901829 to your computer and use it in GitHub Desktop.
Submitting Stems to Beatport DRAFT v3

Submitting Stems to Beatport

Each stem or group of stems must be submitted with a certain number of requirements.

  • Any stem must be contained within a release object which we are calling "stem pack". This stem pack, like any other release, is subject to the same business rules we have now for submissions. These can be found in our hosted content_submission.xsd schema.
  • Within the submitted XML file, it must either contain a tracks object or a stems object. The two cannot coexist in the same XML file.
  • Within the single stems object, one or more stem objects can exist, each pertaining to a single stem file. Each stem object must contain the following properties:
  • albumOnly - either 1 or 0, indicated whether or not that stem must be sold with the whole stem pack or not.
  • stemNumber - starting at 1, an ascending list of integers to indicate placement of the stem within the stem pack.
  • ISRC - this is the link from stem to its originating track. The ISRC must reference a valid track found within our catalog.
  • releaseDate - the date for release.
  • beatportExclusive - a complex type indicating which period of exclusivity. A stem with no exclusive period will simple be <beatportExclusive><exclusivePeriod>0</exclusivePeriod></beatportExclusive>.
  • stemAudioFile - a complex type composed of the following properties:
  • audioFileName - The name of the file which will be found in the same path as this XML file.
  • digestType - either MD5 for SHA1.
  • digestValue - the checksum of the stem file based on the digestType.

Note: the hosted http://oauth-api.beatport.com/schema/content_submission.xsd schema should be used for verification of XML files.

A single stem

A single stem still needs to be contained within a release object with it's own valid UPC code. Here's an example of a non-exclusive stem:

<?xml version="1.0" encoding="UTF-8"?>
<release>
  <aggregatorName>Baseware Distribution</aggregatorName>
  <labelName>Great Stuff Recordings</labelName>
  <UPC_EAN>1231231231230</UPC_EAN>
  <catalogNumber>EXAMPLE001</catalogNumber>
  <coverArtFilename>EXAMPLE001.jpg</coverArtFilename>
  <releaseTitle>Super Stem Single Pack</releaseTitle>
  <releaseSalesType>album</releaseSalesType>
  <stems>
    <stem>
      <albumOnly>0</albumOnly>

      <stemNumber>1</stemNumber>

      <ISRC>GB7GS1502401</ISRC>

      <releaseDate>2015-08-10</releaseDate>

      <beatportExclusive>
        <exclusivePeriod>0</exclusivePeriod>
      </beatportExclusive>

      <stemAudioFile>
        <audioFilename>1231231231230_01.stem.mp4</audioFilename>
        <digestType>MD5</digestType>
        <digestValue>ad8c7c7993c8f675c25cc6d8cf70d565</digestValue>
      </stemAudioFile>
    </stem>
  </stems>
</release>

This means that there is a file named 1231231231230_01.stem.mp4 in the same directory as the XML file whose MD5 checksum evaluates to ad8c7c7993c8f675c25cc6d8cf70d565.

A group of stems

A group of stems can be bundled together as sold as a pack:

<?xml version="1.0" encoding="UTF-8"?>
<release>
<aggregatorName>Baseware Distribution</aggregatorName>
<labelName>Detox Records</labelName>
<UPC_EAN>1231231231231</UPC_EAN>
<catalogNumber>EXAMPLE002</catalogNumber>
<coverArtFilename>EXAMPLE002.jpg</coverArtFilename>
<releaseTitle>Stemification Pack</releaseTitle>
<releaseSalesType>album</releaseSalesType>
<stems>
  <stem>
    <albumOnly>0</albumOnly>

    <stemNumber>1</stemNumber>

    <ISRC>GB7GS1502401</ISRC>

    <releaseDate>2015-08-10</releaseDate>

    <beatportExclusive>
      <exclusivePeriod>0</exclusivePeriod>
    </beatportExclusive>

    <stemAudioFile>
      <audioFilename>1231231231230_01.stem.mp4</audioFilename>
      <digestType>MD5</digestType>
      <digestValue>feeddeafcab000000000000000000000</digestValue>
    </stemAudioFile>
  </stem>
  <stem>
    <albumOnly>1</albumOnly>

    <stemNumber>2</stemNumber>

    <ISRC>GB7GS1502402</ISRC>

    <releaseDate>2015-08-10</releaseDate>

    <beatportExclusive>
      <exclusivePeriod>0</exclusivePeriod>
    </beatportExclusive>

    <stemAudioFile>
      <audioFilename>1231231231230_02.stem.mp4</audioFilename>
      <digestType>MD5</digestType>
      <digestValue>0186591e69336f6219b6872d04f16f0d</digestValue>
    </stemAudioFile>
  </stem>
  <stem>
    <albumOnly>0</albumOnly>

    <stemNumber>3</stemNumber>

    <ISRC>GB7GS1502403</ISRC>

    <releaseDate>2015-08-10</releaseDate>

    <beatportExclusive>
      <exclusivePeriod>0</exclusivePeriod>
    </beatportExclusive>

    <stemAudioFile>
      <audioFilename>1231231231230_03.stem.mp4</audioFilename>
      <digestType>MD5</digestType>
      <digestValue>bf1d6e67c0ec9d2bbc99b9a63d15692d</digestValue>
    </stemAudioFile>
  </stem>
</stems>
</release>

The second stem in the file identified with ISRC GB7GS1502402 cannot be purchased on its own, it can only be acquired when purchasing the whole stem pack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment