Copyright Reports
Copyright Reports are user submissions flagging that a specific track is not copyright-safe and should be removed from the safe catalog (or never added). They sit alongside Copyright Recommendations in the same underlying table but with report_type = copyright. Admins review each pending report and either approve it (marking the track unsafe) or dismiss it (keeping the track as-is).
Where to find it
Admin sidebar → Copyright Reports (/copyright-reports).
Quick start
- Open Admin → Copyright Reports.
- Default filter is Pending; switch to Confirmed or Dismissed to review history.
- Read the song / artist / category and confirmation count.
- Click Approve to confirm the report. In the dialog, optionally add the track to a Curated Playlist override or leave at None.
- Click Dismiss to reject the report and leave the track as-is.
Detailed walkthrough
Status filters
Tab bar: All, Pending, Confirmed, Dismissed. Pending is default.
Report rows
Each row shows:
- Song — track title.
- Artist — track artist.
- Category — submission category.
- Type —
copyright(this page) orrecommendation(on the Recommendations page). - Status — coloured badge (pending = default, confirmed = destructive, dismissed = outline).
- Confirmations — number of other users who flagged the same track.
- Date — submission timestamp.
Row actions on pending rows: Approve, Dismiss.
Approve Report dialog
- Title: "Approve Report".
- Shows song name + artist + a human-readable category hint ("Marking this track as copyright-flagged..." for
copyrighttype; or "Adding to safe catalog..." forrecommendationtype — the dialog is shared). - Add to curated playlist (optional) — dropdown, only shown when the type is
recommendation. Copyright reports don't use this field. - Approve — submits.
Confirmations signal
Tracks with high confirmation counts are higher-confidence reports. The UI does not auto-approve; every confirmation is just a signal for the admin.
Common scenarios
- Track flagged by 20+ streamers — review once, approve, track is removed from the safe catalog.
- Single-user report against a genuinely safe track — dismiss. The track stays safe; the report moves to the Dismissed tab for audit.
- Repeat offender artist — approving one track doesn't auto-approve future reports for the same artist. Each track is handled individually.
- Incorrectly approved previously — there is no "unapprove" in the UI. Handle via DB for now.
Permissions
| Action | Permission |
|---|---|
| View reports | copyright:read |
| Approve / dismiss | copyright:edit |
Dashboard entry requires admin:access. System admins implicitly hold both.
API
| UI action | GraphQL | REST |
|---|---|---|
| List reports (filtered) | — | GET /v1/copyright/reports?status=... |
| Approve | — | POST /v1/copyright/reports/\{id\}/approve |
| Dismiss | — | POST /v1/copyright/reports/\{id\}/dismiss |
| Submit a copyright vote (user side) | — | POST /v1/copyright/vote |
Tips & gotchas
- Reports and Recommendations share endpoints; routing is by
report_typecolumn, not by URL. - Approving a
copyrightreport does not automatically remove the track from any existing Curated Playlists. Do the cleanup there as a second step. - Dismissing a report does not penalise the reporter. There is no reporter-reputation system today.
- If the same track has both active copyright reports and active recommendations, handle the copyright one first — marking unsafe is higher-priority than promoting.
- Filters persist only within the current session; there is no URL state.
Related
- Copyright Recommendations — positive-polarity counterpart
- Copyright Review — combined vote-candidate queue
- Curated Playlists — where approved safe tracks live
- Abuse Reports — meta-reports against the copyright reporting system