Tuned Global

DMCA Radio Quick Start

Overview

The Digital Millennium Copyright Act (DMCA) provides a simplified licensing framework for non-interactive digital radio services operating in the United States. By agreeing to follow a set of operational playback rules and paying pre-determined royalty rates, services can acquire blanket licenses without negotiating directly with individual rightsholders.

Tuned Global's platform supports DMCA-compliant radio implementations through its station, playlist, and playback APIs — including a dedicated DMCA validation endpoint that checks playlist compliance before streaming.

This guide covers:

  • What DMCA radio licensing requires
  • The playback rules your service must enforce
  • How to build a DMCA-compliant radio experience using Tuned Global's APIs
  • Which endpoints to use for stations, playlists, playback, and compliance validation

What is DMCA Radio?

DMCA radio covers "non-interactive" streaming services — services where the listener does not have full control over what plays. Think internet radio stations, curated playlists, and lean-back listening experiences rather than on-demand streaming.

Under Sections 106, 112, and 114 of the US Copyright Act, non-interactive services can operate under statutory licenses managed by:

  • SoundExchange — administers sound recording licenses and pays royalties to labels and artists
  • ASCAP, BMI, SESAC (Performance Rights Organisations) — administer public performance licenses for songwriters and publishers

If your service needs functionality beyond non-interactive radio (on-demand streams, downloads, jukebox plays), you will need direct licenses with labels, publishers, and PROs.

International note: Outside the US, radio services can be implemented in coordination with collection societies in most countries. Tuned Global's catalogue contains locally relevant music globally and can help navigate international licensing processes.

DMCA Playback Rules

DMCA-compliant services must enforce strict playback rules. These are not optional — they are legal requirements under the statutory license.

Track Selection Rules

Rule Requirement
No on-demand playback Tracks may not be played on-demand by the listener
No user-created playlists A user may not listen to any playlists that they create
No advance programme guides The service must not publish or pre-announce an order of songs or when particular recordings will be played

Repetition Limits

Rule Limit
Same artist per hour No more than 4 songs by the same artist
Same album per hour No more than 3 songs from one album
Consecutive from same album No more than 2 songs from one album played consecutively
Same compilation per hour No more than 4 songs from a compilation
Consecutive from same compilation No more than 3 songs from a compilation played consecutively

User Interaction Rules

Rule Limit
Forward skips No more than 6 forward skips per hour
Rewinding Not permitted
Offline caching Tracks cannot be cached locally for offline listening

Programme Length Rules

Rule Requirement
Continuous looped programmes Must be at least 3 hours long
Archived programmes Must be at least 5 hours long and cannot be available for more than 2 weeks

Building DMCA Radio with Tuned Global APIs

A DMCA-compliant radio implementation typically involves four layers:

  1. Station and playlist management — curate and retrieve radio stations
  2. DMCA validation — verify playlists comply with DMCA rules before streaming
  3. Playback and streaming — deliver audio to the listener
  4. Play logging — record playback events for royalty reporting

Step 1 — Set Up Stations and Playlists

Use the Metadata API to discover, browse, and retrieve stations and playlists for your radio service.

Retrieve all stations:

curl -X GET "https://api-metadata-connect.tunedglobal.com/api/v2.4/stations?offset=1&count=20" \
  -H "StoreId: YOUR_STORE_ID"

Get station detail:

curl -X GET "https://api-metadata-connect.tunedglobal.com/api/v2.4/stations/12345" \
  -H "StoreId: YOUR_STORE_ID"

Browse trending stations:

curl -X GET "https://api-metadata-connect.tunedglobal.com/api/v2.4/stations/trending" \
  -H "StoreId: YOUR_STORE_ID"

Find similar stations (for "more like this" radio continuation):

curl -X GET "https://api-metadata-connect.tunedglobal.com/api/v2.4/stations/12345/similar" \
  -H "StoreId: YOUR_STORE_ID"

Browse playlists by tag (for genre or mood-based radio):

curl -X GET "https://api-metadata-connect.tunedglobal.com/api/v2.4/playlists/by-tags?filter.tags=Chill,Acoustic&filter.sortType=Popularity&filter.count=10" \
  -H "StoreId: YOUR_STORE_ID"

Retrieve playlist tracks:

curl -X GET "https://api-metadata-connect.tunedglobal.com/api/v2.4/playlists/12345/tracks?offset=1&count=50" \
  -H "StoreId: YOUR_STORE_ID"

Key Station & Playlist Endpoints (Metadata API v2.4)

Endpoint Method Description
/api/v2.4/stations GET Retrieve all stations
/api/v2.4/stations/{id} GET Station detail
/api/v2.4/stations/trending GET Trending stations
/api/v2.4/stations/{id}/similar GET Similar stations
/api/v2.4/stations/trendingartists GET Top 20 artists by liked songs
/api/v2.4/stations/stationtrendingartists?id={id} GET Top trending artists in a station
/api/v2.4/stations/{id}/identifiers GET Station identifiers
/api/v2.4/search/stations?q={query} GET Search stations
/api/v2.4/playlists/{id} GET Playlist detail
/api/v2.4/playlists/{id}/tracks GET Playlist tracks
/api/v2.4/playlists/by-tags GET Playlists by tag
/api/v2.4/playlists/trending GET Trending playlists
/api/v2.4/playlists GET All published playlists
/api/v2.4/search/playlists?q={query} GET Search playlists

Step 2 — Validate DMCA Compliance

Before streaming a playlist as a radio station, validate it against DMCA rules using the dedicated validation endpoint.

Validate a playlist for DMCA compliance:

curl -X GET "https://api-metadata-connect.tunedglobal.com/api/v2.4/playlists/12345/validate-for-dmca" \
  -H "StoreId: YOUR_STORE_ID"

This endpoint checks the playlist's track sequence against DMCA repetition and programming rules, and reports whether the playlist is compliant.

Endpoint Method Description
/api/v2.4/playlists/{id}/validate-for-dmca GET Validate playlist against DMCA rules

Recommendation: Always validate before streaming. Run this check whenever a playlist is updated or before it enters rotation in your radio service.

Step 3 — Manage Playback Queue

Use the Services API queue endpoints to manage the listener's now-playing experience. The queue system supports groups, shuffle, repeat, and crossfade modes.

Set up a queue from a station or playlist:

curl -X PUT "https://api-services-connect.tunedglobal.com/api/v3/queue" \
  -H "StoreId: YOUR_STORE_ID" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"groups": [...]}'

Get currently playing track:

curl -X GET "https://api-services-connect.tunedglobal.com/api/v3/queue/playing" \
  -H "StoreId: YOUR_STORE_ID" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Key Queue Endpoints (Services API v3)

Endpoint Method Description
/api/v3/queue GET Retrieve now-playing queue
/api/v3/queue PUT Replace entire queue
/api/v3/queue/playing GET Get currently playing item
/api/v3/queue/playing PUT Set currently playing item
/api/v3/queue/groups/{id} PUT Add a group to the queue
/api/v3/queue/groups/{id}/tracks GET Get tracks in a queue group
/api/v3/queue/groups/{id}/tracks POST Add tracks to a queue group
/api/v3/queue/shuffle/{mode} PUT Set shuffle mode
/api/v3/queue/repeat/{mode} PUT Set repeat mode
/api/v3/queue/crossfade/{mode} PUT Set crossfade mode
/api/v3/queue/tracks POST Add tracks to queue
/api/v3/queue/tracks DELETE Remove tracks from queue
/api/v3/queue/tracks PATCH Reorder tracks in queue

Step 4 — Stream and Log Playback

Authenticate, stream tracks, and log every play event. Accurate play logging is critical for DMCA compliance — SoundExchange and the PROs require detailed reports to calculate and distribute royalties.

Authenticate:

curl -X POST "https://api-authentication-connect.tunedglobal.com/oauth2/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

Request a stream token:

curl -X POST "https://api-services-connect.tunedglobal.com/api/v3/plays/{deviceId}/{trackId}/token" \
  -H "StoreId: YOUR_STORE_ID" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Start a stream:

curl -X POST "https://api-services-connect.tunedglobal.com/api/v3/plays/{deviceId}/{trackId}/stream" \
  -H "StoreId: YOUR_STORE_ID" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Log the play event:

curl -X POST "https://api-services-connect.tunedglobal.com/api/v3/plays/{deviceId}" \
  -H "StoreId: YOUR_STORE_ID" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"trackId": 12345, "duration": 210, "completed": true}'

Key Playback Endpoints (Services API v3)

Endpoint Method Description
/api/v3/plays/{deviceId}/{trackId}/token POST Request stream security token
/api/v3/plays/{deviceId}/{trackId}/stream POST Prepare and start a stream
/api/v3/plays/{deviceId} POST Log a play event
/api/v3/plays/{deviceId}/offline POST Log plays that occurred offline
/api/v3/plays/playhistory GET Retrieve user play history
/api/v3/plays/remaining GET Get remaining plays for user

Step 5 — Enforce Skip Limits

DMCA allows no more than 6 forward skips per hour and no rewinding. Your client application must enforce this — track skip count per rolling hour window and disable the skip button when the limit is reached.

This is a client-side responsibility. Tuned Global does not enforce skip limits at the API level.

1. Authenticate         POST /oauth2/token
2. Browse stations      GET  /api/v2.4/stations or /stations/trending
3. Get playlist tracks  GET  /api/v2.4/playlists/{id}/tracks
4. Validate for DMCA    GET  /api/v2.4/playlists/{id}/validate-for-dmca
5. Build queue          PUT  /api/v3/queue
6. Stream track         POST /api/v3/plays/{deviceId}/{trackId}/stream
7. Log play             POST /api/v3/plays/{deviceId}
8. Enforce skip limits  Client-side (max 6 per hour, no rewind)
9. Repeat from step 6

Compliance Checklist

Before launching a DMCA radio service, confirm:

  • [ ] Notice of Use filed with the US Copyright Office
  • [ ] SoundExchange classification determined and Statement of Account filed
  • [ ] PRO licenses obtained (ASCAP, BMI, SESAC)
  • [ ] Label approval obtained via Tuned Global
  • [ ] Playlist DMCA validation passing (/playlists/{id}/validate-for-dmca)
  • [ ] Skip limits enforced (max 6 forward skips per hour, no rewind)
  • [ ] No on-demand playback, no user-created playlist listening
  • [ ] No advance programme guides or pre-announced track orders
  • [ ] No offline caching of tracks
  • [ ] Looped programmes at least 3 hours, archived programmes at least 5 hours
  • [ ] Play logging active for all streams
  • [ ] Royalty reporting configured for SoundExchange and PROs

Swagger References

On this page