Loading


How to Use Albums to Organize Requests

An "album" is a collection of one or more tracks. The "album" object stores required album title and artist info, and is the foundation of every license request, even single track requests. To organize requests by album, you have two options: you can put multiple tracks on an album or always assign only one track per album (recommended). Either method is fine, although we recommend you choose one method and use it consistently. We explain each technique below and compare.


Album - the foundation of every license request

By law, we must provide an album title and artist for every license request, even singles. As such, the "album" object serves as the foundation for every license request. An album object contains the album "title" and "artist" for the request. Here's a reminder of how we structure a license request:

Licensee - the entity requesting permission to release a copyrighted song.
Album - a collection of one or more tracks. We define a "single" as an album with one track.
Release - a distribution of an album. Specifies the format, quantity, and release date.
Track - a recording of one or more songs. For licensing, give each song its own track.
Song - a composition of music notes and lyrics, underlying a track/recording.
Request - a request to use a copyrighted song. Note that although we might contact multiple copyright owners, you need concern yourself with only one "request" status.


About this article

This article is kind of long and probably not required reading for everyone. For that reason, we feel a bit of an explanation is helpful: by default, tracks are not grouped by album, meaning each request gets a unique album ID and has unique album info (album title and artist are not shared with other requests). This makes initial requests and reorders very easy. Simply make your initial request using POST /api/requests and reorder using POST /api/tracks/{trackId}/requests. Most users will prefer the default method for its simplicity and flexibility. However, we provide the option to group tracks by album for those that prefer it. Grouping by album is more complicated and can cause problems if not implemented correctly. This article is largely written to help users that want to group tracks by album. It's also for anyone who wants a deeper understanding of their options when it comes to using albums to organize requests. At a minimum, we recommend reading the next section, "Choose a method". Depending on your choice, the rest of the article might not be necessary for you.


Choose a method

You have two options for organizing license requests into albums. Either approach is fine. We suggest you choose one method and stick to it to give your users a consistent licensing experience and simplify troubleshooting. Also, the second approach is a bit complicated, so please be sure you understand it well before implementing it.

1) One track per album method (recommended). Straightforward and flexible.

If you do not want to worry about grouping requests by album, simply create a new initial request each time and do not include an existing album ID. By default, a new album object is created for each new request. We call this the "one track per album" method since we assign only one track per album regardless how the tracks will actually be released/marketed.

2) Actual tracks per album method. More accurate, more complicated.

If you want to group and associate multiple tracks on an album, you will need to save the unique album ID from the initial request and post it on subsequent requests. If you do this, only one album object is created and the subsequent requests are linked to it. We call this the "actual tracks per album" method because the grouping of tracks by album reflects the actual manner the tracks will be released.

One track per album (recommended)

Album A
Track 1
Album A
Track 2
Album A
Track 3

Most of our API users will always assign only one track per album, regardless of how the tracks will actually be released (together or not). This is a practical solution, well-aligned with the realities of modern music use.

Legal and accepted industry practice.

Best when flexibility is the primary concern.

Allows easy reordering of exact required individual track quantities, regardless of the popularity of each track.

Does not present the most accurate representation of the release. Tracks are not grouped by album when viewed through our services (EasySongLicensing.com, IDBLM.org).

Harder to update album info. If album info changes, it must be updated for each track individually.

Actual tracks per album (advanced)

Album A
Track 1
Track 2
Track 3
Album B
Track
Album C
Track
Track

You have the option to group tracks by album according to how the tracks are actually being released. If the album will be marketed as a collection of tracks, all those tracks share the same album object.

Legal and accepted industry practice.

Best when accuracy is the primary concern.

Presents the most accurate representation of the release. Tracks are grouped by album when viewed through our services (EasySongLicensing.com, IDBLM.org).

Easy to update album info. Can be updated in one place and affect all tracks/requests on the album.

Harder to reorder additional units for only a few select tracks, although this is possible.


Each method in practice - creating the initial requests

You will POST your requests differently depending on which method you choose for organizing your albums. Let's explore how this would play out using each method of album organization and the example Album "A", an album with three tracks, shown below.

One track per album

Album "A"
Track 1
Album ID: 1
Album "A"
Track 2
Album ID: 2
Album "A"
Track 3
Album ID: 3

Note that even though this will be released as one album, for licensing purposes each track gets its own album object (album IDs 1, 2, and 3).

Actual tracks per album

Album "A"
Track 1
Track 2
Track 3
Album ID: 1

Note that the tracks share an album object (album ID 1).

Posting the first track (one track per album)

Post the first track using the POST /api/requests endpoint. Provide all the required info including album title and artist.

                    
{
  "track": {
    "album": {
      "artist": "Mariah Carey",
      "title": "Heroes",
      "licensee": {
        "address": "123 Chestnut Street",
        "city": "Pittsburgh",
        "companyName": "US Steel",
        "country": "United States",
        "email": "example@example.com",
        "externalLicenseeId": "ExampleUniqueID",
        "firstName": "Andrew",
        "lastName": "Carnegie",
        "phone1": "(123) 123-1234",
        "state": "PA",
        "zip": "15106"
      }
    },
    "lengthInSeconds": 301,
    "releases": [
      {
        "formatId": 1002,
        "releaseMonth": 10,
        "releaseYear": 2018,
        "releaseQuantity": 25,
        "expectedOutletsOfDistribution": "CD Baby Pro"
      }
    ],
    "song": {
      "originalRecordingArtist": "Mariah Carey",
      "title": "Hero"
    }
  }
}
                    
                

Save the unique licensee "ID" from the response so that subsequent requests are linked to the same licensee. You should also save the unique request ID and track ID, to access the request later. You can also save the unique album ID and release ID to easily access these resources later.

Posting the first track (actual tracks per album)

Post the first track using the POST /api/requests endpoint exactly the same as the one-track-per-album method.

                    
{
  "track": {
    "album": {
      "artist": "Mariah Carey",
      "title": "Heroes",
      "licensee": {
        "address": "123 Chestnut Street",
        "city": "Pittsburgh",
        "companyName": "US Steel",
        "country": "United States",
        "email": "example@example.com",
        "externalLicenseeId": "ExampleUniqueID",
        "firstName": "Andrew",
        "lastName": "Carnegie",
        "phone1": "(123) 123-1234",
        "state": "PA",
        "zip": "15106"
      }
    },
    "lengthInSeconds": 301,
    "releases": [
      {
        "formatId": 1002,
        "releaseMonth": 10,
        "releaseYear": 2018,
        "releaseQuantity": 25,
        "expectedOutletsOfDistribution": "CD Baby Pro"
      }
    ],
    "song": {
      "originalRecordingArtist": "Mariah Carey",
      "title": "Hero"
    }
  }
}
                    
                

Save the unique licensee "ID" from the response so that subsequent requests are linked to the same licensee. In addition to the unique licensee "ID", save the album "ID" and release "ID" from the response. You will use these to add subsequent tracks/requests to the existing album and release. You should also save the unique track ID, to access the request later.

Posting the second track (one track per album)

Post the second track the same way you posted the first, with one exception. Since the licensee is the same, provide the unique licensee ID from your first post instead of sending complete licensee info again. This will link the new request to the same licensee and prevent the creation of duplicate licensees. Because you are giving each track its own album, you will NOT provide the album ID from the first post. This will create a new album object for this track, which is what we want. You'll have multiple albums with the same title and artist, but unique IDs. Use the POST /api/requests endpoint. Provide the rest of the required info as well, including album title and artist, which should be the same as what you posted for Track 1.

                    
{
  "track": {
    "album":{
      artist": "Mariah Carey",
      "title": "Heroes",
	    "licensee": {
		"id": "badf45ab-041f-435b-be4b-8bf2b511c539"
	    }
    },
    "externalTrackId": "124",
    "lengthInSeconds": 214,
    "releases": [
      {
        "id": 8
        "formatId": 1,
        "releaseMonth": 10,
        "releaseYear": 2018,
        "releaseQuantity": 0,
        "expectedOutletsOfDistribution": "CD Baby Pro"
      }
    ],
    "song": {
      "originalRecordingArtist": "Janet Jackson",
      "title": "Again"
    },
  }
}
                    
                

Again, you should also save the unique request ID and track ID, to access the request later. You may also wish to save the unique album ID and release ID to easily access these resources later.

Posting the second track (actual tracks per album)

When you post the second track, you will want to reuse the unique licensee ID, album ID, and release ID you obtained from the response when you posted Track 1. Use the same POST /api/requests endpoint, but this time, do NOT provide licensee info, album info, or release info. Instead provide the unique IDs for each. When you do this, the new track/request will be added to the existing album and release. It will use the release, album, and licensee info from the existing album, effectively adding the new track to that album and release.

                    
{
  "track": {
    "album":{
	"id": 1,
	    "licensee": {
		"id": "badf45ab-041f-435b-be4b-8bf2b511c539"
	    }
    },
    "externalTrackId": "124",
    "lengthInSeconds": 214,
    "releases": [
      {
        "id": 8
      }
    ],
    "song": {
      "originalRecordingArtist": "Janet Jackson",
      "title": "Again"
    },
  }
}
                    
                

Again, you should save the unique request ID and track ID from the response for later use.

Posting the third track (one track per album)

Post the third track the same way you posted the second. Provide the unique licensee ID from earlier, and again explicitly provide the album title and artist to match the previous requests. This will create another new album object for this track, which is what we want. You'll have multiple albums with the same title and artist, but unique IDs. Use the POST /api/requests endpoint.

Again, save the unique request ID, and the album ID, track ID, and release ID if you wish.

Posting the third track (actual tracks per album)

Post the third track the same way you posted the second. Reuse the unique licensee ID, album ID, and release ID from the first request. Use POST /api/requests endpoint, and do NOT provide licensee info, album info, or release info. Instead provide the unique IDs for each. When you do this, the new track/request will be added to the existing album and release, which is what we want.

Again, save the unique request ID and track ID if you wish.

End result (one track per album)

Album "Heroes"
Track 1
Hero
Album ID: 1
Album "Heroes"
Track 2
Again
Album ID: 2
Album "Heroes"
Track 3
Iris
Album ID: 3

End result (actual tracks per album)

Album "Heroes"
Track 1) Hero
Track 2) Again
Track 3) Iris
Album ID: 1

Each method in practice - licensing additional units

After the initial license request, a common task is clearing additional units. This can be done using either method of album organization. There are a few scenarios to consider: licensing additional units for one track, some tracks, and all of the tracks on the album. Let's see how this works for each method of album organization.

Scenario 1 - Licensing additional units for only one track on an album (that has multiple tracks).

Continuing our example from above, let's say Track 1, "Hero" is quite popular. It achieves 100 downloads in the first month, surpassing the anticipated 25 units that were initially cleared. Let's see how this could be handled using each method of album organization.

Additional units - one track (one track per album)

Initial requests

Album "Heroes"
Track 1
Hero
Album ID: 1
Track ID: 1
Release ID: 1
25 downloads
Album "Heroes"
Track 2
Again
Album ID: 2
Track ID: 2
Release ID: 2
25 downloads
Album "Heroes"
Track 3
Iris
Album ID: 3
Track ID: 3
Release ID: 3
25 downloads

Actual distribution

125 downloads
7 downloads
15 downloads

Additional to license

100 downloads
-
-

Licensing additional units for only Track 1, "Hero", is easy. Simply POST a new (additional) request for track ID 1 using the endpoint POST /api/tracks/{trackId}/requests.

POST /api/tracks/1/requests
                    
{
  "releaseQuantity": 100,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                

A new release and request will be created and linked to the existing track ID 1 and album ID 1:

Additional units - one track (one track per album)

Initial requests

Album "Heroes"
Track 1
Hero
Album ID: 1
Track ID: 1
Request ID: 1
Release ID: 1
25 downloads
Album "Heroes"
Track 2
Again
Album ID: 2
Track ID: 2
Request ID: 2
Release ID: 2
25 downloads
Album "Heroes"
Track 3
Iris
Album ID: 3
Track ID: 3
Request ID: 3
Release ID: 3
25 downloads

Additional requests

Album ID: 1
Track ID: 1
Request ID: 4
Release ID: 4
100 downloads
-
-

Total units licensed

125 downloads
25 downloads
25 downloads

Additional units - one track (actual tracks per album)

Initial requests

Album "Heroes"
Track 1) Hero
Track 2) Again
Track 3) Iris
Album ID: 1
Track IDs: 1, 2, 3 respectively
Release ID: 1
25 downloads

Actual distribution

125 downloads
7 downloads
15 downloads

Additional to license

100 downloads
-
-

Licensing additional units for only Track 1, "Hero", when grouping tracks by album is a bit more complicated.

Warning - Below is an example of what not to do when you need to request additional licensing for only one track when grouping tracks by album.

We can't use the endpoint POST /api/tracks/{trackId}/requests because it creates a new request for every track on the album. If we did use it, we'd get the following undesireable effect:

Additional units - one track (actual tracks per album)

Initial requests

Album "Heroes"
Track 1) Hero
Track 2) Again
Track 3) Iris
Album ID: 1
Track IDs: 1, 2, 3 respectively
Request IDs: 1, 2, 3 respectively
Release ID: 1
25 downloads (each track/request)

Additional requests

Album ID: 1
Track IDs: 1, 2, 3 respectively
Request IDs: 4, 5, 6 respectively
Release ID: 4
100 downloads (each track/request)

Total units needed

Track 1) 125 downloads
Track 2) 7 downloads
Track 3) 15 downloads


Total units licensed

Track 1) 125 downloads
Track 2) 125 downloads
Track 3) 125 downloads

Oops. This is not what we want. We've accidentally ordered additional units for all tracks, when we wanted additional units for only Track 1), "Hero".

Solution - The following is the proper way to license additional units of only one track when tracks have been grouped on an album with multiple tracks.

The solution is to create a new initial request for only the track you want to license more of (the words "initial request" aren't the most accurate for this reorder scenario. Nonetheless...). This can be done using the POST /api/requests endpoint as we discussed earlier in this article.

Note that when you do this, you technically create a new album object, and effectively separate the reorder from the initial album, breaking our tidy structure of grouping tracks appropriately by album. But it's the best solution for handling uneven reorders of additional units when the "actual tracks per album" method is desired.

Scenario 2 - Licensing additional units for a few select tracks on an album.

The solutions presented in scenario 1 for clearing additional units for only one track can be repeated as needed to request additional units for a few select tracks on an album. Below is some commentary specific to each method.

Additional units - few tracks (one track per album)

Requesting additional units for a few select tracks is about as easy as doing so for one track. Simply repeat the process of calling the endpoint POST /api/tracks/{trackId}/requests with the track ID and release information of each track you want to license again.

Ordering more of Track 1, "Hero", and Track 3, "Iris" in October.
POST /api/tracks/1/requests
                    
{
  "releaseQuantity": 100,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                
POST /api/tracks/3/requests
                    
{
  "releaseQuantity": 100,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                
More "Hero" again in November.
POST /api/tracks/1/requests
                    
{
  "releaseQuantity": 187,
  "releaseMonth": 11,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                

You can do this over and over again and you'll never affect other tracks "on this album" (that share this album title and artist). That's the beauty of the one-track-per-album method. It's very easy to reorder just what you need.

Additional units - few tracks (actual tracks per album)

Like ordering additional units for only one track, the solution is to create a new initial request for only the tracks you want to license more of. This can be done using the POST /api/requests endpoint we discussed earlier in this article.

Again, you have the option to group tracks on any of the new "reorder albums" you create by posting the existing album ID in subsequent requests. For example, if you needed 100 additional units of "Hero" and "Again", you could create an initial request to handle the 100 unit reorder of "Hero", save the album ID, and include it in your request for "Again" to group these tracks on the reorder album. Naturally, you would only want to do this if the reorder quantity was the same for each track.

Although grouping tracks on reorder albums is possible, most users will simply create a new initial request for each track that needs additional units, or stick to the "one track per album" method altogether. Again, this decision depends on your preference for simplicity versus a more accurate representation of the actual release. How you model this is up to you. On our own service, Easy Song Licensing uses the "actual tracks per album" method for every release.

Scenario 3 - Licensing additional units for every track on the album.

When reordering every track on an album, there are two scenarios to consider: 1) the reorder quantity is the same for every track on the album, and 2) the reorder quantity is not the same for every track on the album. Here's how to handle these scenarios with each album organization method:

Good to know - Whether the quantity is the same or different for each track doesn't matter when using the "one track per album" organization method. The process is the same.

Requesting additional units for all tracks on the album is a matter of repeatedly calling the endpoint POST /api/tracks/{trackId}/requests with the track ID and new release information for each track, one by one.

All tracks - different quantities (one track per album)

POST /api/tracks/1/requests
                    
{
  "releaseQuantity": 100,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                
POST /api/tracks/2/requests
                    
{
  "releaseQuantity": 13,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                
POST /api/tracks/3/requests
                    
{
  "releaseQuantity": 5,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                

All tracks - same quantity (one track per album)

POST /api/tracks/1/requests
                    
{
  "releaseQuantity": 100,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                
POST /api/tracks/2/requests
                    
{
  "releaseQuantity": 100,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                
POST /api/tracks/3/requests
                    
{
  "releaseQuantity": 100,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                

Note that reordering every track when the reorder quantity is the same is a bit more cumbersome using this method than the "actual tracks per album" method. For most users, it's a small price to pay for the gain in flexibility and simplicity.

All tracks - different quantities (actual tracks / album)

If the reorder quantities are different for one or more tracks on the album, the solution is to create a new initial request for each track, providing the specific quantity to reorder of that track. This should be done using the POST /api/requests endpoint we discussed earlier in this article. This breaks the tidiness of our album organization, but is necessary when reordering different quantities for a variety of tracks that were originally grouped on a single album.

All tracks - same quantity (actual tracks per album)

If the reorder quantity is exactly the same for every track on the album, you can easily create a new request for each track with only one post. To do that, use the endpoint POST /api/tracks/{trackId}/requests. This creates a new request for every track on the album, which is what we want in this scenario.

Good to know - When using POST /api/tracks/{trackId}/requests, you can use the track ID from any track on the album and new requests will be added for all tracks on the album. In the example below, we use track ID 1, but 2 or 3 could be used just the same, with the same effect.
POST /api/tracks/1/requests
                    
{
  "releaseQuantity": 100,
  "releaseMonth": 10,
  "releaseYear": 2018,
  "formatId": 1002
}
                    
                

Here's the result:
Initial requests

Album "Heroes"
Track 1) Hero
Track 2) Again
Track 3) Iris
Album ID: 1
Track IDs: 1, 2, 3 respectively
Request IDs: 1, 2, 3 respectively
Release ID: 1
25 downloads (each track/request)

Additional requests

Album ID: 1
Track IDs: 1, 2, 3 respectively
Request IDs: 4, 5, 6 respectively
Release ID: 4
100 downloads (each track/request)

Initial units licensed

Track 1) 25 downloads
Track 2) 25 downloads
Track 3) 25 downloads


Additional units licensed

Track 1) 100 downloads
Track 2) 100 downloads
Track 3) 100 downloads


Total units licensed

Track 1) 125 downloads
Track 2) 125 downloads
Track 3) 125 downloads

Conclusion

With the Easy Song Licensing API, you have two options for grouping tracks/requests by album. You can group requests by album using the "actual tracks per album" method or give each track/request its own album using the default "one track per album" method. The recommended "one track per album" method is easier to use. Simply make your initial request using POST /api/requests and reorder using POST /api/tracks/{trackId}/requests. While most users will prefer the default method for its simplicity and flexibility, we provide the grouping method as an option for when it seems to be a better fit.


Next up?

Have you posted a request yet? If not, that's a good place to start. If you've already posted, updated, and checked a request status, we recommend you read our article about using wall posts to communicate with ESL. It's an awesome way to get personal help from us and improve your customer experience.

https://developer.easysonglicensing.com/documentation/007-using-albums-with-the-easy-song-licensing-api.aspx