Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ To get a local copy up and running, follow these simple steps:
## Available Templates

- **Split Sheets**: `/docs/splits/split-sheet-5-writers.md` - Track ownership for songs with multiple writers
- **Music Metadata Guide**: `/docs/MUSIC-METADATA-GUIDE.md` - Comprehensive guide on music metadata, key identifiers (EIN, IPI, ISRC, ISWC, ISNI), and sample metadata management apps for independent artists

## Contributing

Expand Down
294 changes: 294 additions & 0 deletions docs/MUSIC-METADATA-GUIDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,294 @@
# Music Metadata Guide for Independent Artists

## Introduction

Welcome to the definitive guide on music metadata for independent artists. This resource aims to help you properly document your music so you can maximize your discoverability, ensure proper royalty collection, and avoid the dreaded "black box" where unclaimed funds disappear.

As an independent artist, your metadata is your digital footprint—it's how streaming platforms, collection societies, and fans identify and find your work. Getting this right from the start can make a significant difference in your career trajectory.

## Why Metadata Matters

- **Royalty Collection**: Ensures your earnings reach you instead of ending up in the "black box" of unclaimed royalties
- **Discoverability**: Makes your music easier to find through search and recommendation algorithms
- **Professional Presentation**: Provides a consistent, polished experience for listeners across platforms
- **Rights Protection**: Properly documents your ownership and creative contributions

## Essential Metadata Fields

### Basic Track Information
- **Track Title**: Use consistent capitalization and spelling
- **Artist Name(s)**: Include all contributing artists
- **Album/Release Title**: Match exactly across all platforms
- **Release Date**: Use YYYY-MM-DD format
- **Genre(s)**: Be specific but relevant
- **Language**: Specify the language of vocals

### Identifiers
- **ISRC** (International Standard Recording Code): Unique identifier for each recording
- **UPC/EAN** (Universal Product Code): Identifies your release as a whole
- **ISWC** (International Standard Musical Work Code): Identifies the underlying composition

### Rights Management
- **Songwriter(s)**: Full legal names of all writers
- **Publisher(s)**: Publishing company information
- **Producer(s)**: Production credits
- **PRO Affiliation**: Your Performance Rights Organization (ASCAP, BMI, SESAC, etc.)
- **Split Sheets**: Documentation of ownership percentages

### Technical Information
- **BPM**: Tempo information
- **Key**: Musical key
- **Explicit Content**: Yes/No designation
- **Sound Recording Copyright Owner**: Usually "℗ [Year] [Record Label/Artist Name]"
- **Composition Copyright Owner**: Usually "© [Year] [Publisher/Writer Name]"

## Key Identifiers for Indie Artists

1. **EIN (Employer Identification Number):**
- **What it is:** A unique number assigned by the IRS to business entities for tax reporting.
- **Why needed:** Required for tax purposes, especially if the artist is operating as a business entity.
- **Where to register:** Through the IRS website.

2. **IPI (Interested Parties Information):**
- **What it is:** A unique identifier used by performing rights organizations to track songwriters and publishers.
- **Why needed:** Essential for royalty collection and ensuring rights holders are properly credited.
- **Where to register:** Via a Performing Rights Organization (PRO) like ASCAP, BMI, or SESAC.

3. **ISRC (International Standard Recording Code):**
- **What it is:** A unique identifier for sound recordings and music video recordings.
- **Why needed:** Facilitates the tracking of recordings for royalty payments.
- **Where to register:** Through a national ISRC agency or directly from the RIAA if you are in the US.

4. **ISWC (International Standard Musical Work Code):**
- **What it is:** Identifies musical works and is used to manage rights and royalties.
- **Why needed:** Ensures that songwriters are credited and compensated.
- **Where to register:** Typically handled by a PRO when you register your compositions.

5. **ISNI (International Standard Name Identifier):**
- **What it is:** A unique identifier for the identities of public figures, including artists.
- **Why needed:** Helps in distinguishing between artists with similar names.
- **Where to register:** Through an ISNI registration agency.

6. **Work ID:**
- **What it is:** An internal identifier used by PROs to track specific works.
- **Why needed:** For managing rights and ensuring accurate royalty distribution.
- **Where to register:** Automatically assigned when you register a work with a PRO.

## Adding Your ISNI to Music Metadata: Why It Matters

As an independent artist, ensuring your music metadata is accurate and comprehensive is crucial for proper crediting and potential royalty collection. One key piece of information you should consider adding, if you have one, is your **International Standard Name Identifier (ISNI)**.

**What is an ISNI?**

Think of an ISNI as a unique digital ID for creators and rights holders in the music industry (and beyond!). It helps distinguish you from other artists with similar names and ensures your contributions are correctly attributed to you across various databases and platforms.

**Why include your ISNI in your music metadata?**

* **Unique Identification:** It provides a clear and unambiguous way to identify you as a creator.
* **Accurate Crediting:** Helps ensure you receive proper credit for your work as a performer, songwriter, or producer.
* **Streamlined Royalty Collection:** While not directly a royalty collection tool, accurate identification can contribute to smoother rights management.
* **Professional Standard:** Including an ISNI demonstrates attention to detail and adherence to industry best practices.

**Where can you include your ISNI?**

While not all metadata fields in distribution platforms currently have a dedicated "ISNI" field, here are some places you might be able to include it or discuss its inclusion with your distributor:

* **Artist Name Field:** If there's no specific ISNI field, and if it's permitted by the platform's guidelines, you *could* append your ISNI to your artist name (e.g., "Your Artist Name (ISNI: 0000-0000-0000-0000)"). However, **always check the platform's guidelines first** as this might not be the intended use of the artist name field.
* **Contributor/Composer/Writer Fields:** Some platforms allow you to specify roles and provide identifiers for contributors. If an ISNI field is available for these roles, be sure to include it.
* **Notes or Comments Section:** Some platforms might have a general notes or comments section where you could include your ISNI for reference.
* **Communicate with your Distributor:** The best approach is to inquire with your music distributor about whether they have a specific field for ISNI or if they have recommendations on where to include it in your metadata.

**How to get an ISNI:**

If you don't have an ISNI, you can obtain one through an official ISNI registration agency. Some platforms, like Sound Credit, may also offer ISNI registration services.

## Platforms & Resources

### Distribution Services
- **DistroKid**: Allows detailed metadata input, fast distribution
- **TuneCore**: Comprehensive metadata fields, strong accounting features
- **CD Baby**: User-friendly interface, established reputation
- **Amuse**: Free tier available, mobile-first approach
- **UnitedMasters**: Strong marketing tools alongside distribution

### Metadata Management Tools
- **Soundcharts**: Monitor your music performance across platforms
- **Songtradr**: Metadata enhancement and music licensing
- **VEVA Sound**: Professional metadata capture and management

### PROs & Collection Societies
- **US**: ASCAP, BMI, SESAC
- **UK**: PRS for Music
- **Canada**: SOCAN
- **Australia**: APRA AMCOS
- **International**: CISAC directory of worldwide societies

### Royalty Collection
- **SoundExchange**: Collects digital performance royalties in the US
- **Music Reports**: Royalty administration and claiming service
- **Kobalt**: Publishing administration with strong technology focus
- **Songtrust**: Global royalty collection for indie artists

## Best Practices

1. **Be Consistent**: Use identical metadata across all platforms
2. **Register Early**: Join your local PRO before releasing music
3. **Document Everything**: Keep records of all collaborators and agreements
4. **Use Templates**: Create metadata templates for your releases
5. **Verify Before Release**: Double-check all information prior to distribution
6. **Monitor Your Catalog**: Regularly check for missing royalties or metadata issues
7. **Learn Industry Standards**: Follow DDEX standards when possible

## Common Pitfalls to Avoid

- Inconsistent artist name spelling across platforms
- Missing or incomplete songwriter information
- Failure to register works with PROs
- Overlooking international collection opportunities
- Using temporary or placeholder metadata
- Ignoring administrative aspects of music publishing
- Not documenting collaboration splits before release

## Future-Proofing Your Catalog

- Keep a master spreadsheet of all your metadata
- Back up all agreements and documentation
- Stay informed about industry metadata standards
- Consider blockchain and emerging technologies for rights management
- Document your studio setup and recording processes

## Sample Metadata Management App

Creating an app to help music publishers and independent artists manage their metadata involves a combination of technical and domain-specific knowledge. Below are sample code snippets to guide you in developing such an app.

> **Note:** These are basic examples for learning purposes only. For production use, add input validation, secure data storage, authentication, and set `debug=False`. Never log sensitive identifiers like EIN to console output.

### Basic Metadata App (Python/Flask)

Backend code (Python using Flask):
```python
from flask import Flask, render_template, request

app = Flask(__name__)

metadata = {}

@app.route('/')
def index():
return render_template('index.html', metadata=metadata)

@app.route('/update_metadata', methods=['POST'])
def update_metadata():
song_name = request.form['song_name']
artist = request.form['artist']
genre = request.form['genre']

metadata[song_name] = {'artist': artist, 'genre': genre}

return render_template('index.html', metadata=metadata)

if __name__ == '__main__':
app.run(debug=True)
Copy link

Copilot AI Feb 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The note says to set debug=False for production, but the sample runs the server with debug=True. Since these snippets are likely to be copy/pasted, consider changing this to debug=False (or reading from an env var) to avoid encouraging an unsafe default.

Suggested change
app.run(debug=True)
app.run(debug=False)

Copilot uses AI. Check for mistakes.
```

Frontend code (HTML/CSS):
```html
<!DOCTYPE html>
<html>
<head>
<title>Metadata App</title>
</head>
<body>
<h1>Metadata App for Indie Artists</h1>
<form action="/update_metadata" method="post">
<label for="song_name">Song Name:</label>
<input type="text" name="song_name">
<br>
<label for="artist">Artist:</label>
<input type="text" name="artist">
<br>
<label for="genre">Genre:</label>
<input type="text" name="genre">
<br>
<input type="submit" value="Update Metadata">
</form>

<h2>Current Metadata</h2>
<ul>
{% for song_name, data in metadata.items() %}
<li>{{ song_name }} - Artist: {{ data['artist'] }}, Genre: {{ data['genre'] }}</li>
{% endfor %}
</ul>
</body>
</html>
```

### Metadata Registration App with Identifiers

This expanded version includes fields for all key identifiers:

```python
from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def home():
return render_template('index.html')

@app.route('/register', methods=['POST'])
def register():
artist_name = request.form['artist_name']
ein = request.form['ein']
ipi = request.form['ipi']
isrc = request.form['isrc']
iswc = request.form['iswc']
isni = request.form['isni']
work_id = request.form['work_id']
# Process registration data
print(f"Artist: {artist_name}, EIN: {ein}, IPI: {ipi}, ISRC: {isrc}, ISWC: {iswc}, ISNI: {isni}, Work ID: {work_id}")
return 'Registration successful'

if __name__ == '__main__':
app.run(debug=True)
Comment on lines +252 to +253
Copy link

Copilot AI Feb 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as earlier snippet: debug=True is enabled here. Consider switching to debug=False (or env-controlled) to avoid promoting an unsafe default in documentation.

Copilot uses AI. Check for mistakes.
```

Registration form (save as `templates/index.html`):
```html
<!DOCTYPE html>
<html>
<head>
<title>Music Metadata Registration</title>
</head>
<body>
<h1>Register Your Music Metadata</h1>
<form action="/register" method="post">
<label for="artist_name">Artist Name:</label>
<input type="text" name="artist_name"><br>
<label for="ein">EIN:</label>
<input type="text" name="ein"><br>
<label for="ipi">IPI:</label>
<input type="text" name="ipi"><br>
<label for="isrc">ISRC:</label>
<input type="text" name="isrc"><br>
<label for="iswc">ISWC:</label>
<input type="text" name="iswc"><br>
<label for="isni">ISNI:</label>
<input type="text" name="isni"><br>
<label for="work_id">Work ID:</label>
<input type="text" name="work_id"><br>
<input type="submit" value="Register">
</form>
</body>
</html>
```

To run either app, install Flask (`pip install flask`) and run the Python script.

## Connect With The Community

Have questions? Join our Discord community of independent artists sharing knowledge about metadata best practices.
Copy link

Copilot AI Feb 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The guide invites readers to join a Discord community but doesn't provide an invite/link or reference to where to find it. Add a link (or point to a canonical location in the repo) so readers can actually join, or remove the call-to-action if no Discord exists.

Suggested change
Have questions? Join our Discord community of independent artists sharing knowledge about metadata best practices.
Have questions? Use the repository's issue tracker or discussion board to connect with other independent artists and maintainers and share knowledge about metadata best practices.

Copilot uses AI. Check for mistakes.

---

*This guide is maintained by an independent artist for the community. Contributions welcome!*