› mp3dump: Rip the audio stream of a Flash video to MP3 
Fri, 03/28/2008 - 00:03
UPDATE: Also check out mp3dump part 2
On some undefined occasion you might want to dump the audio stream of a flash file. This is how you do it:
- Get the
*.flv, e.g. visit youtube with Konqueror and check/tmpfor a file likeFlashV5SQLt- this is your FLV. - Install some dependencies:
ffmpegis required,mp3infoandecasoundare optional but strongly recommended. - Download the script below (it’s attached!) and save it inside your
$PATH, remember how you’ve called it! I’ve saved the script inside
~/.binwhich is inside my$PATHso all I have to do now is running it:mp3dump FlashV5SQLt "Foo Bar" "All Your Base Are Belong To Us"This would rip the audio stream of
FlashV5SQLtto a file namedFoo Bar - All Your Base Are Belong To Us.mp3- with emulated stereo sound and basic MP3 tags (artist and title). Coolio!
So what does this neat-o-bash-magic look like?
Note: The script is attached below, so no copy’n’paste is required (but optionally supported :-) )
#!/bin/bash # # Simple script to rip the audio stream of a FLV to MP3 # # usage: mp3dump INPUT.flv ARTIST TITLE # example: mp3dump FlashhxSjv3 "Foo Bar" "All your Base are Belong to Us" # Author: Milian Wolff # depends on: ffmpeg # optional: ecasound for stereo sound emulation # optional: mp3info to write title and artist mp3 tags if [[ "$(which ffmpeg)" == "" ]]; then echo -e "\033[41mInstall ffmpeg or this script wont work!\033[0m" exit fi if [[ "$1" == "" || "$2" == "" || "$3" == "" || "$4" != "" ]]; then echo "Usage: $(basename $0) INPUT.flv ARTIST TITLE" exit fi dest="$2 - $3.mp3" tmpfile="/tmp/$$-$dest" echo "Destination file is: $dest" echo echo echo "generating mp3 file..." echo ffmpeg -i "$1" -f mp3 -vn -acodec copy "$dest" 1>/dev/null echo echo -e " \033[32mdone\033[0m" echo if [[ "$(which ecasound)" == "" ]]; then echo "You can optionally install ecasound to simulate stereo sound" echo else echo -n "simulating stereo sound..." ecasound -d:1 -X -i "$dest" -etf:8 -o "$tmpfile" 1>/dev/null mv "$tmpfile" "$dest" echo -e " \033[32mdone\033[0m" echo fi if [[ "$(which mp3info)" == "" ]]; then echo "You can optionally install mp3info to write basic mp3 tags automatically" echo else echo -n "writing basic mp3 tags..." mp3info -a "$2" -t "$3" "$dest" echo -e " \033[32mdone\033[0m" echo fi echo "Have fun with »$dest«"
PS: I totally forgot to mention that I got the basic ffmpeg & ecasound commands from this thread by SuperMike:
http://www.ubuntuforums.org/showpost.php?p=1949017&postcount=1
| Attachment | Size |
|---|---|
| mp3dump. | 1.35 KB |
Comments
I always did it manually with Mon, 06/29/2009 - 22:44 — Alan (not verified)
I always did it manually with mplayer -dumpaudio and then tagged it with eye3d. The tip about stereo sound is priceless. Thanks.
thanks, was looking for some Sun, 11/23/2008 - 21:50 — Jan (not verified)
thanks, was looking for some code for a new project. youtube does not use flv by any chance, does it?
Actually, it does: As I Wed, 11/26/2008 - 18:45 — Milian Wolff
Actually, it does:
As I mentioned at the beginning of the article, you can simply visit Youtube with your favorite browser under Linux and you’ll find the video you are watching somewhere under
/tmp(look for cryptic names likeFlashMYeMdJ). Make sure to rip before you close the page in your browser, else the temporary file will be deleted.Post new comment