Python script to record the audio of the Spotify desktop client using FFmpeg and PulseAudio
If you use the AUR package, you can simply run:
If you have a GNU/Linux distribution with a different package manager system, run:
First of all run spotify.
Then you can run the python script which will record the music:
./spotrec.py -o ./my_song_dir --skip-intro
Check the pulseaudio configuration:
Pay attention to the red circles, everything else is muted and with volume set to 0%
Note: actually "Lavf..." will appear after you start playing a song
Finally start playing whatever you want
Disable volume normalization in the Spotify Client
Do not change the volume during recording
Use Audacity for post processing
Start the script with the debug flag:
If one of the following scenarios happens:
# what you should see when ffmpeg is recording ... size=56400kB time=00:00:04.15 bitrate= 130.7kbits/s speed=1x
ValueError: invalid literal for int() with base 10: 'nput'
I would suggest you to:
Note: sometimes spotify detects when the user does not interact with the application for a long time (more or less an hour) and starts looping over a song, to avoid this scenario I would suggest to keep interacting with the spotify client.