+4
-3
moderation/static/admin.css
+4
-3
moderation/static/admin.css
···
328
display: flex;
329
flex-direction: column;
330
gap: 8px;
331
-
align-items: flex-end;
332
}
333
334
.resolution-reason {
335
color: var(--success);
336
font-size: 0.85rem;
337
font-weight: 500;
338
}
339
340
.resolution-notes {
341
background: var(--bg-primary);
342
border: 1px solid var(--border-subtle);
343
border-radius: 6px;
344
-
padding: 12px;
345
font-size: 0.8rem;
346
color: var(--text-secondary);
347
line-height: 1.5;
348
-
max-width: 500px;
349
text-align: left;
350
}
351
···
328
display: flex;
329
flex-direction: column;
330
gap: 8px;
331
+
width: 100%;
332
}
333
334
.resolution-reason {
335
color: var(--success);
336
font-size: 0.85rem;
337
font-weight: 500;
338
+
text-align: right;
339
}
340
341
.resolution-notes {
342
background: var(--bg-primary);
343
border: 1px solid var(--border-subtle);
344
border-radius: 6px;
345
+
padding: 12px 14px;
346
font-size: 0.8rem;
347
color: var(--text-secondary);
348
line-height: 1.5;
349
+
width: 100%;
350
text-align: left;
351
}
352
+23
-17
scripts/moderation_agent.py
+23
-17
scripts/moderation_agent.py
···
212
- LIKELY_FALSE_POSITIVE: high confidence this is NOT infringement (original artist, licensed, etc.)
213
- NEEDS_REVIEW: uncertain, requires human judgment
214
215
-
when analyzing flags, consider:
216
217
-
1. ORIGINAL ARTIST indicators (false positive):
218
- artist handle matches or is similar to matched artist name
219
-
- track title matches the uploaded track title
220
- artist is likely uploading their own distributed music
221
222
-
2. FINGERPRINT NOISE indicators (false positive):
223
-
- very low match scores (< 0.5)
224
-
- generic/common samples or sounds
225
-
- matched songs from different genres than uploaded track
226
-
- one match among many unrelated matches
227
228
-
3. LICENSED/COVER indicators (false positive):
229
-
- track explicitly labeled as cover, remix, or tribute
230
- common phrases in titles suggesting original content
231
232
-
4. LIKELY VIOLATION indicators:
233
-
- high match scores (> 0.8) with well-known commercial tracks
234
-
- exact title matches with popular songs
235
- matched artist is clearly different from uploader
236
-
- multiple matches to same copyrighted work
237
238
be conservative: when in doubt, categorize as NEEDS_REVIEW rather than auto-resolving.
239
-
provide clear reasoning for each categorization.
240
241
for false positives, suggest the most appropriate resolution reason:
242
- original_artist: uploader is the matched artist
243
- licensed: uploader has rights to use the content
244
-
- fingerprint_noise: audio fingerprinting error
245
- cover_version: legal cover or remix
246
- other: doesn't fit other categories
247
"""
···
564
else ResolutionReason.OTHER
565
)
566
notes = (
567
-
f"AI analysis: {track_analysis.reasoning[:200]}"
568
if track_analysis
569
else "AI categorized as false positive"
570
)
···
212
- LIKELY_FALSE_POSITIVE: high confidence this is NOT infringement (original artist, licensed, etc.)
213
- NEEDS_REVIEW: uncertain, requires human judgment
214
215
+
IMPORTANT: do NOT rely heavily on match scores. the scores from our fingerprinting
216
+
system are often unreliable (many show 0.00 even for real matches). instead, focus on:
217
218
+
1. TITLE AND ARTIST NAME MATCHING (most important):
219
+
- does the matched song title match or closely resemble the uploaded track title?
220
+
- does the matched artist name match or resemble the uploader's handle/name?
221
+
- are the matched songs well-known commercial tracks?
222
+
223
+
2. ORIGINAL ARTIST indicators (false positive):
224
- artist handle matches or is similar to matched artist name
225
+
- track title matches the uploaded track title exactly
226
- artist is likely uploading their own distributed music
227
228
+
3. FINGERPRINT NOISE indicators (false positive):
229
+
- matched songs are from completely different genres
230
+
- matched titles have no relation to uploaded track title
231
+
- multiple unrelated matches with no common theme
232
+
- matched artists are obscure and unrelated to track content
233
234
+
4. LICENSED/COVER indicators (false positive):
235
+
- track explicitly labeled as cover, remix, or tribute in title
236
- common phrases in titles suggesting original content
237
238
+
5. LIKELY VIOLATION indicators:
239
+
- matched song title is identical or very similar to uploaded track
240
+
- matched artist is a well-known commercial artist (e.g., major label)
241
- matched artist is clearly different from uploader
242
+
- multiple matches to the SAME copyrighted work
243
244
be conservative: when in doubt, categorize as NEEDS_REVIEW rather than auto-resolving.
245
+
provide clear reasoning for each categorization, focusing on name/title analysis.
246
247
for false positives, suggest the most appropriate resolution reason:
248
- original_artist: uploader is the matched artist
249
- licensed: uploader has rights to use the content
250
+
- fingerprint_noise: audio fingerprinting error (unrelated matches)
251
- cover_version: legal cover or remix
252
- other: doesn't fit other categories
253
"""
···
570
else ResolutionReason.OTHER
571
)
572
notes = (
573
+
f"AI analysis: {track_analysis.reasoning}"
574
if track_analysis
575
else "AI categorized as false positive"
576
)