› 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
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.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.
Post new comment