“Du musst für jeden Track alle Länder einzeln auswählen.” Sagten sie. Und was hat mich das jedes Mal genervt, ich bin wirklich fast verrrückt geworden vor allem wenn ich mal mehr als einen Track hochgeladen hatte. 5 Tracks monetarisieren hieß dann 155x klicken. Sau nervig und ohne mich!
Challenge accepted.
Das Problem: 31 x klicken, warten - pro Track
Als Musiklabel lädt man bei SoundCloud nicht nur einen Track hoch. Es sind manchmal Dutzende. Und für jeden Track muss man Monetarisierungs-Rechte festlegen. Für jedes Land einzeln.
Das bedeutet:
- Dropdown öffnen
- Rechteinhaber auswählen
- Warten bis React neu rendert
- Zum nächsten Feld
- 31 mal wiederholen
Nach dem dritten Track hatte ich genug.
Versuch 1: “Das ist doch nur ein Formular”
Erster Gedanke: Playwright. Automatisiere einfach den Browser, Problem gelöst.
await page.click('.dropdown');
await page.click('text=Logic Moon');
Drei Zeilen Code. Easy.
Plot Twist: SoundCloud hat andere Pläne.
❌ You have been blocked
Automated (bot) activity detected
Use of developer or inspection tools
Playwright? Erkannt. Selenium? Blockiert. Puppeteer? Nicht mal gestartet.
SoundCloud’s Bot-Detection ist aggressiv. Und das zu Recht.
Versuch 2: Die Browser-Console
Wenn Automation-Tools nicht funktionieren, muss es die gute alte Browser-Console tun.
document.querySelectorAll('button').forEach(btn => {
btn.click();
// Magic here
});
Problem: React.
Nach jedem Klick rendert SoundCloud das komplette Interface neu. Die Button-Referenzen werden ungültig. Die Dropdown-IDs ändern sich. Und das Script findet plötzlich… nichts mehr.
Der Durchbruch: Immer den ersten nehmen
Die Lösung war simpel: Nicht mit Indices arbeiten, sondern immer den ersten ungesetzten Button finden.
while (true) {
const unsetButton = Array.from(buttons).find(btn =>
btn.textContent.includes('Rechteinhaber auswählen')
);
if (!unsetButton) break;
unsetButton.click();
// Rest der Logik
}
Jedes Mal wenn React neu rendert? Egal. Wir holen uns einfach die neue Liste.
Das funktionierte.
Von der Console zum Userscript
Ein Script in der Console einzutippen ist nervig. Die Lösung: Tampermonkey.
Das Userscript macht jetzt:
- ⚡ Button unten rechts auf der Seite
- ⌨️ Keyboard-Shortcut (Ctrl+L)
- 💾 localStorage für die Einstellungen
- 🔄 Reset-Button zum Ändern
Beim ersten Mal: “Welchen Rechteinhaber möchtest du?”
Danach: Klick, fertig, alle 31 Felder ausgefüllt.
Die technischen Details
Warum funktioniert es?
- Kein Bot-Tool - läuft direkt im Browser
- Respektiert React - holt sich bei jedem Durchlauf neue Referenzen
- Findet das richtige Element - klickt den
<a>im<li>, nicht das<li>selbst - Wartet minimal - nur 100ms + 200ms, läuft trotzdem stabil
Das wichtigste Learning: Manchmal ist die einfachste Lösung die beste. Keine fancy Tools, nur cleveres JavaScript.
Open Source für alle
Das Script ist jetzt auf GitHub und funktioniert für jeden SoundCloud-User. Nicht nur für Logic Moon Music, sondern mit jedem, der auf Soundcloud monetarisieren darf.
Features:
- Dynamische Rechtehaber-Auswahl
- Speichert Präferenz lokal
- Funktioniert mit deutscher und englischer UI
- Reset-Funktion inklusive
Von 30 Minuten auf 5 Sekunden
Vorher: Pro Track 30 Minuten manuelles Klicken
Nachher: 5 Sekunden, ein Klick
Bei 20 Tracks pro Woche spart das 10 Stunden pro Monat.
Zeit, die besser in Musik steckt als in Dropdown-Menüs.
Warum ich das teile
Weil jemand anderes das gleiche Problem hat. Und weil Code, der anderen hilft, besserer Code ist.
Plus - es zeigt: Automation muss nicht kompliziert sein. Manchmal reichen ein paar Zeilen Zeilen JavaScript.
Try it yourself
Neugierig geworden? Das Userscript auf GitHub checken, in Tampermonkey installieren und nie wieder Dropdowns manuell ausfüllen.
31 Felder. 1 Klick. Problem solved.