Unter ALSA habe ich einen Weg gefunden, alle Musik direkt von der Soundkarte abzuzapfen und aufzuzeichen. Leider gilt das auch für die Werbung, aber die kann man rausschneiden. Diese Anleitung gilt für Archlinux ohne Pulseaudio. Unter anderen Distributionen sind möglicherweise Anpassungen notwendig.
Teste zuerst, ob bereits installiert ist:
aplay -l
Die Liste zeigt dir, ob ein Gerät namens "Loopback" existiert. Falls nein, dann lade das Kernelmodul:
modprobe snd_aloop
Um das Ganze nach dem Reboot nicht zu verlieren, musst du ein Textfile kreieren, dies geht am schnellsten (als root) mit:
echo "snd_aloop" > /etc/modules-load.d/myYoutube.conf
Wir wollen nun einen globalen Splitter welcher allen Sound vom Alsamixer einerseits an die Hardware schickt und andererseits an einen Loopback. Den Ausgang des Loopbacks nennen wir youtube und verwenden ihn als Quelle für die Record App.
Kreiere oder ändere als root das File /etc/asound.conf und füge folgenden Text hinzu:
pcm.myTee {
type route;
slave.pcm {
type multi;
slaves {
a.pcm "hw:SB,0,0" # Your Soundcard, may be different string
a.channels 2
b.pcm "hw:Loopback,0,0" # loopback input stream
b.channels 2
}
bindings {
0 { slave a; channel 0; }
1 { slave a; channel 1; }
2 { slave b; channel 0; }
3 { slave b; channel 1; }
}
}
#volume controls 0.0 - 1.0 (four channels)
ttable [
[ 1 0 1 0 ]
[ 0 1 0 1 ]
]
}
pcm.youtube {
type plug
slave.pcm "hw:Loopback,1,0" # loopback output stream that recorder listens
}
Der korrekte Name der Soundkarte (hier als Beispiel "hw:SB,0,0") musst du noch herausfinden via:
aplay -l
Die Syntax des Strings lautet dann:
"hw:<cardNr or CardName>,<deviceNr>,<subdevNr>"
Als Standart definiert Alsa die PCM "dmix" für Playback und "dsnoop" für Capture (Record). Diese können wir hier nicht mehr verwenden weil deren definierte In/outputs anstatt auf die Soundkarte neu auf den Loopback zeigen. Zudem wollen wir ja den Soundstream aufteilen was dmix nicht tut. Also ersetzen wir dmix durch myTee per Default.
Ergänze nachfolgendes Snipped in /etc/asound.conf. Aber Achtung: Möglicherweise existiert bereits ein derartiger Eintrag oder etwas Gleichlautendes im Userprofil ~./asoundrc. Dann musst du überlegen, wie man dies genau übernehmen kann.
pcm.!default {
type asym
capture.pcm
{
type plug
slave {
pcm "hw:SB,2,0" # analog-digital-converter in your soundcard, may be different string
}
}
playback.pcm
{
type plug
slave.pcm "myTee" # Master out redirection
}
}
Den richtigen Namen des AD-Wandlers der Soundkarte (hier "hw:SB,2,0") findest du diesmal mit:
arecord -l
Während andere Apps (zB VLC) Alsa per default unterstützen, braucht Firefox Nachhilfe:
arecord -vv -f cd -D youtube record.wav
oder
ffmpeg -f alsa -ar 44100 -i youtube record.mp3
Have a lot of fun!
Last Update: Aug 2025