Una forma de grabar el audio de un stream en twitch (o cualquier cosa que tengas sonando en firefox) en GNU+Linux con pulseaudio es así:
#!/bin/bash
export LC_ALL=C bash
sinkID=$(pactl list sink-inputs | grep -B 18 -i 'firefox' | grep -i 'Sink Input' | awk '{print $3}' | cut -d "#" -f 2)
pactl move-sink-input $sinkID stream
parec -d stream.monitor | oggenc -b 192 -o stream.ogg --raw -
Es buena cosa tener instalado pavucontrol y vorbis-tools ( oggenc ).
La primera línea de ese script lo que hace es que el texto de salida en la terminal salga en inglés y no en el idioma que tengas. Eso se hace para luego filtrar por «Sink Input» ya que de otra forma podría salir ese texto de salida del comando en otro idioma.
Luego se captura en una variable el ID de ese flujo ya que filtramos por todas y capturamos la correspondiente a Firefox. Si tuvieras por ejemplo vlc abierto, firefox, mplayer, … te saldrían muchas más cuando haces un «pactl list sink-inputs».
Finalmente se mueve ese flujo a uno nuevo llamado stream para posteriormente capturar el audio y generar un archivo ogg de audio llamado stream.ogg
No escucho nada cuando hago esto
Efectivamente. Vas a dejar de escuchar el audio de firefox . Esto se puede solucionar con pcat así:
#!/bin/bash
export LC_ALL=C bash
sinkID=$(pactl list sink-inputs | grep -B 18 -i 'firefox' | grep -i 'Sink Input' | awk '{print $3}' | cut -d "#" -f 2)
pactl move-sink-input $sinkID stream
parec -d stream.monitor | oggenc -b 192 -o stream.ogg --raw - | pacat -d 1
De esa forma si abres pavucontrol podrás ver que te sale otro flujo que puedes cambiar la salida y escucharla. De esa forma escuchas el stream de tu streamer favorito o lo que sea y lo grabas al mismo tiempo el audio.
Una vez terminas de grabar el audio podrás transcribirlo de audio a texto con algunas herramientas en GNU+Linux .
Pero eso ya es otro post.
Saludos cordiales.