Stream Recorder
04-08-2009, 07:13 PM
rtmpdump.exe (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) - freeware CLI application (Mac OS X, Linux, Windows). It allows you to dump RTMP streams onto your hard drive.
I had to start the program several times using "--resume" option:
rtmpdump -r "rtmp://host.com/dir/file.flv" -o filename.flv --resume
when I saw errors like the following one:
DEBUG: Checked keyframe successfully!
DEBUG: Found keyframe with resume-keyframe timestamp!
ERROR: ReadN, RTMP recv error 10060
ERROR: ReadPacket, failed to read RTMP packet header
WARNING: Download may be incomplete, try --resume!
Closing connection... done!
There are better RTMP Flash stream recorders (http://all-streaming-media.com/record-video-stream/record-streaming-video-Adobe-Flash-FLV-videos.htm), but this one is absolutely free. And it is the only RTMP downloader I know that works on Mac OS and Unices.
If you know how to find RTMP stream URL in Mac OS or Unix, please let us know.
any ANONYMOUS forum user
06-02-2009, 05:38 AM
The author of rtmpdump has received a DMCA removal request via Sourceforge for rtmpdump which is was hosted by them. Adobe continues to fight with the developers of programs supporting secure RTMP measures. This is rather curious because Adobe could introduce stronger protection or DRM instead. And this is very stupid, because rtmpdump was an open source project and many people downloaded the latest source code supporting RTMPE and SWF verification which means that there will be more and more stream recorders supporting secure RTMP measures. At least lawyers occupied by Adobe should be happy :D
The program is hosted by many web-sites so download your copy of the latest version of rtmpdump, because most probably it will be available on bittorrent trackers and file download web-sites only.
p.s. I always wonder why big companies like Adobe do stupid and futile things like that.
Milardo
06-10-2009, 01:35 PM
Does anybody know how to correctly use rtmpdump in windows? Please reply with stepbystep directions maybe even using the rtmpe code from the following youtube video
http://www.youtube.com/watch?v=HX0SI4Vf-E4
I've tried to use it but I haven't been successful in using it.
By the way, does anybody have the last version of rtmpdump for windows? Thanks in advance.
noob2001204
06-16-2009, 11:59 PM
i'm using rtmpdump
besides rtmp:// stream URL, what about the data needed...?
swfurl,tcurl,pageurl...?
are they needed to download the stream?
also,i tried several streams,but they all failed
Stream Recorder
06-17-2009, 12:14 AM
i'm using rtmpdump
besides rtmp:// stream URL, what about the data needed...?
swfurl,tcurl,pageurl...?
are they needed to download the stream?
also,i tried several streams,but they all failed
Do you use rtmpdump 1.6 for Windows?
Could you please post some URLs that rtmpdump wasn't able to download?
rtmpdump is not the best rtmp:// downloader
With the --resume switch I can continue the capturing, but only with errors ....
And then it stops again... So I had to manually resume the capturing about 10-15 times, resulting in corrupt stream data, where the download sessions begin and end.
VLC player can still play the output file, but with audio/video artefacts every few seconds ...
noob2001204
06-17-2009, 12:18 AM
i tried some live stream,such as justin.tv,cams.com,cam4.com,livejasmin.com,etc
but rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) failed to capture all of them
but i know rtmpdump 1.6 is able to capture live stream
also,i cant get most of normal rtmp video streams
Stream Recorder
06-17-2009, 12:46 AM
i tried some live stream,such as justin.tv,cams.com,cam4.com,livejasmin.com,etc
but rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) failed to capture all of them
Live streams are harder to record. Sometimes I have problems with them even when using my favorite Replay Media Catcher (http://all-streaming-media.com/record-video-stream/Replay-Media-Catcher-HTTP-RTMP-FLV-MP3-ripper-recorder.htm) and Jaksta (http://all-streaming-media.com/record-video-stream/Jaksta-Streaming-Media%20Recorder-and-Converter.htm).
Stream Recorder
06-17-2009, 07:36 AM
what about the data needed...?
swfurl,tcurl,pageurl...? are they needed to download the stream?
from rtmpdump help
--help|-h Prints this help screen.
--rtmp|-r url URL (e.g. rtmp//hotname[:port]/path)
--host|-n hostname Overrides the hostname in the rtmp url
--port|-c port Overrides the port in the rtmp url
--protocol|-l Overrides the protocol in the rtmp url (0 - RTMP, 3 - RTMPE)
--playpath|-y Overrides the playpath parsed from rtmp url
--swfUrl|-s url URL to player swf file
--tcUrl|-t url URL to played stream (default: "rtmp://host[:port]/app")
--pageUrl|-p url Web URL of played programme
--app|-a app Name of player used
--swfhash|-w hexstring SHA256 hash of the decompressed SWF file (32 bytes)
--swfsize|-x num Size of the decompressed SWF file, required for SWFVerification
--auth|-u string Authentication string to be appended to the connect string
--flashVer|-f string Flash version string
--live|-v Save a live stream, no --resume (seeking) of live strems possible
--flv|-o string FLV output file name, if the file name is - print stream to stdout
--resume|-e Resume a partial RTMP download
--timeout|-m num Timeout connection num seconds
--buffer|-b Buffer time in milliseconds, this option makes only sense in stdout mode
--skip|-k num Skip num keyframes when looking for last keyframe to resume from. Useful if resume fails
If you don't pass parameters for swfUrl, pageUrl, app or auth these properties will not be included in the connect packet.
flysub
06-17-2009, 09:50 AM
I just trying to download from a website with rtmpe and swf verification and i received the following :
"warning: handleping: Ignoring swfvrification request, use --swfhash and swfzise! "
"failed to play stream not found"
the strange is for others website it's working
any ideas??
Stream Recorder
06-19-2009, 07:50 AM
I just trying to download from a website with rtmpe and swf verification and i received the following :
"warning: handleping: Ignoring swfvrification request, use --swfhash and swfzise! "
"failed to play stream not found"
the strange is for others website it's working
any ideas??
According to rtmpdump 1.6 readme by Andrej Stepanchuk:
Download the swf player you want to use for SWFVerification, unzip it using
$ flasm -x file.swf
It will show the decompressed filesize, use it for --swfsize
Now generate the hash
$ openssl sha -sha256 -hmac "Genuine Adobe Flash Player 001" file.swf
and use the --swfhash "01234..." option to pass it. e.g.
$ ./rtmpdump --swfhash "123456..." --swfsize 987...
lester
06-21-2009, 12:40 AM
despite its limitations--the worst being typing "resume" every few seconds to continue downloading--this little program is the only one out of many that's been able to download rtmpe streams. ;)
Stream Recorder
06-21-2009, 11:17 PM
Batch file using rtmpdump 1.4 or 1.5 for downloading from ABC iView (by sge)
@ECHO OFF
setlocal ENABLEDELAYEDEXPANSION
::Change to 1.5 if you have problems
SET RTMPVER=1.4
SET USEPROXY=OFF
::Much better than other methods of downloading though.
::Connects to ABC servers to retrieve a authentication token (which is part of the streams URI)
::Select a channel, then retrieves possible episodes from it.
::Follow the prompts and it should download.
CLS
ECHO.
ECHO ABC iView Downloader by sge
ECHO This script simplifies the process of downloading streams off ABC iView.
ECHO.
ECHO Removing any existing temp files... old authentication tokens... old channel list...
ECHO.
:Start
If exist authenticationtoken.xml del authenticationtoken.xml
If exist channel.xml del channel.xml
SET TOKEN=
SET HOST=
SET ISP=
SET FREE=
SET DOWNLOADER=
SET Choice=
SET DLPATH=
SET TEMPFILENAME=
SET FILENAME=
set LINE=
set LINEOFSHOW=
set SHOW=
set ANSWER=
:RetrieveToken
ECHO.
::No more IP geoblocking now even our friends from overseas can download videos/watch ABC iView. Just enter a proxy in Australia. Uses a Akamai token, but it makes no difference here.
::There isn't much point, but someone will use it.... I bet there is a aussie expat somewhere, that need their fix of Gardening Australia and will thank me :P)
if /i {%USEPROXY%}=={ON} (
ECHO BEWARE OF POTENTIAL PROXY
set http_proxy=114.127.246.36:8080
)
ECHO Using wget to retrieve an XML file from ABC's servers...
ECHO.
::wget.exe -O authenticationtoken.xml http://www2b.abc.net.au/iView/Services/iViewHandshaker.asmx/isp
::Fixed IP.
wget.exe -O authenticationtoken.xml http://202.125.43.119/iview.asmx/isp
ECHO.
ECHO Parsing XML... Retrieving Authentication Token...
for /f "tokens=3 delims=<>" %%a in ('type authenticationtoken.xml ^| find "<token>"') do set TOKEN=%%a
for /f "tokens=3 delims=<>" %%a in ('type authenticationtoken.xml ^| find "<host>"') do set HOST=%%a
for /f "tokens=3 delims=<>" %%a in ('type authenticationtoken.xml ^| find "<isp>"') do set ISP=%%a
for /f "tokens=3 delims=<>" %%a in ('type authenticationtoken.xml ^| find "<free>"') do set FREE=%%a
if /i {%HOST%}=={Akamai} (set DOWNLOADER=alt)
ECHO.
ECHO Authentication token recived from ABC: "%TOKEN%"
ECHO You are using iView host: "%host%" through ISP: "%ISP%"
ECHO.
if /i {%FREE%}=={no} (
ECHO iView is NOT unmetered on your connection. Beware.
)
if /i {%DOWNLOADER%}=={alt} goto :AkamaiToken
IF NOT {%DOWNLOADER%}=={alt} goto :RegularToken
:AkamaiToken
ECHO.
ECHO Your host: %host% uses a different style authentication token.
ECHO You need to do another step.
ECHO.
ECHO Attempting to parse Akamai authentication token...
ECHO.
for /f "usebackq tokens=3 delims=<>" %%a in (`type authenticationtoken.xml ^| find "<token>"`) do echo %%a>token.tmp
for /f "usebackq tokens=1,3 delims=&;" %%a in (`more token.tmp`) do set token=%%a^&%%b
del /q token.tmp
ECHO Parsed authentication token: "%token%"
ECHO.
pause
goto :ChannelPick
:RegularToken
ECHO Your host: "%host%" with authentication: "%TOKEN%" uses the regular downloading command.
ECHO.
pause
goto :ChannelPick
:ChannelPick
CLS
ECHO Which channel do you wish to browse:
ECHO.
ECHO A. Catchup (Recent ABC TV)
ECHO.
ECHO B. News
ECHO.
ECHO C. Arts
ECHO.
ECHO D. Shop (Preview ABC shows)
ECHO.
ECHO E. Docs
ECHO.
ECHO F. The Australia Network (English educational materials)
ECHO.
ECHO G. New Stuff (Recent Kids Shows)
ECHO.
ECHO H. Kazam (Action animation for all ages)
ECHO.
ECHO I. Faves (Great Australian drama series)
ECHO.
ECHO Z. Manually enter path
ECHO.
ECHO.
SET /P Choice=Type the letter and press Enter:
:: The syntax in the next line extracts the substring starting at 0 (the beginning) and 1 character long
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
IF /I '%Choice%'=='A' SET URL=http://www.abc.net.au/playback/xml/input/catchup.xml
IF /I '%Choice%'=='B' SET URL=http://www.abc.net.au/playback/xml/input/news.xml
IF /I '%Choice%'=='C' SET URL=http://www.abc.net.au/playback/xml/input/arts.xml
IF /I '%Choice%'=='D' SET URL=http://www.abc.net.au/iview/xml/shop.xml
IF /I '%Choice%'=='E' SET URL=http://www.abc.net.au/playback/xml/input/docs.xml
IF /I '%Choice%'=='F' SET URL=http://www.abc.net.au/playback/xml/input/australianetwork.xml
IF /I '%Choice%'=='G' SET URL=http://www.abc.net.au/playback/xml/input/newstuff.xml
IF /I '%Choice%'=='H' SET URL=http://www.abc.net.au/playback/xml/input/kazam.xml
IF /I '%Choice%'=='I' SET URL=http://www.abc.net.au/playback/xml/input/faves.xml
IF /I '%Choice%'=='Z' GOTO ManualDLPATH
ECHO.
ECHO.
If exist PossibleShowsTEMP del PossibleShowsTEMP
wget.exe -O channel.xml %URL%
ECHO.
ECHO.
ECHO Possible Shows to download are:
ECHO.
::Parsing channel.xml... Echoing shows on screen in format "LINE. SHOW"... Outputting batch friendly show list...
for /f "tokens=3 delims=<>" %%a in ('type channel.xml ^| find "<url>"') do (
set /A LINE=!LINE! + 1
echo !line!. %%a
echo [!LINE!]%%a[/!LINE!] >> PossibleShowsTEMP
)
if /i {%CHOICE%}=={Z} goto :ManualDLPATH
IF NOT {%CHOICE%}=={Z} goto :AutoDLPATH
:ManualDLPATH
ECHO.
ECHO Manually enter download path
ECHO.
ECHO You must get the paths from iView XML (links in the batch file) or from PossibleShowsTEMP
ECHO.
set /p DLPATH=Enter path to download. For Example: catch_up/chaser_09_03_01 (WITHOUT the .flv part):
ECHO.
ECHO You entered: "%DLPATH%"
ECHO.
:ChooseOutput
set /p FILENAME=Enter Filename to Output:
ECHO You typed: "%FILENAME%"
ECHO.
pause
goto :WhichDownloader
:AutoDLPATH
ECHO.
set /p LINEOFSHOW=Which show do you wish to download (Enter number ONLY)
for /f "tokens=2 delims=[]." %%a in ('type PossibleShowsTEMP ^| find "[%LINEOFSHOW%]"') do set DLPATH=%%a
ECHO.
ECHO Episode Found: %DLPATH%
ECHO.
::Gets a filename from the download path
set TEMPFILENAME=%DLPATH%.flv
for /f "tokens=2 delims=/" %%I in ('echo %TEMPFILENAME% ^| find "/"') do (
set FILENAME=%%I
)
ECHO Output Filename: %FILENAME%
ECHO.
pause
:WhichDownloader
if /i {%DOWNLOADER%}=={alt} goto :AlternativeDownloadCommand
IF NOT {%DOWNLOADER%}=={alt} goto :RegularDownloadCommand
:AlternativeDownloadCommand
CLS
ECHO You are using the alternative downloader:
ECHO.
ECHO Ok, you will be requesting "%DLPATH%" using the authentication token "%TOKEN%" from ABC iView servers and saving the stream with the filename "%FILENAME%" using the alternative download command with RTMPdump%RTMPver%.
ECHO.
pause
ECHO.
rtmpdump-WIN32-%RTMPVER%.exe -r rtmp://cp53909.edgefcs.net////flash/playback/_definst_/%DLPATH% -t rtmp://cp53909.edgefcs.net/ondemand?auth="%TOKEN%" -o "%FILENAME%"
goto EndMessage
:RegularDownloadCommand
CLS
ECHO You are using the regular downloader:
ECHO.
ECHO Ok, you will be requesting "%DLPATH%" using the authentication token "%TOKEN%"
ECHO from ABC iView servers and saving the stream with the filename "%FILENAME%"
ECHO Using the regular download command with RTMPdump%RTMPver%.
ECHO.
pause
ECHO.
rtmpdump-WIN32-%RTMPVER%.exe -r rtmp://203.18.195.10/ondemand?auth="%TOKEN%" -y %DLPATH% -o "%FILENAME%"
goto :EndMessage
:EndMessage
ECHO If all went well, "%DLPATH%.flv" should have been downloaded as "%FILENAME%"
ECHO It can be played with VLC
ECHO You must force 16:9 aspect or it looks squished
ECHO.
ECHO If the download didn't begin, try another stream.
ECHO.
SET /P ANSWER=Do you wish to download another file? (Y/N)?
echo You chose: %ANSWER%
if /i {%ANSWER%}=={y} (goto :Start)
if /i {%ANSWER%}=={yes} (goto :Start)
goto :CleanUp
:CleanUp
ECHO.
ECHO Removing temp files...
If exist authenticationtoken.xml del authenticationtoken.xml
If exist channel.xml del channel.xml
ECHO.
ECHO Done! Quitting...
pause
compn
07-19-2009, 06:22 PM
Now generate the hash
$ openssl sha -sha256 -hmac "Genuine Adobe Flash Player001" file.swf
does the hash come from the decompressed swf or the original swf?
any ANONYMOUS forum user
07-20-2009, 11:59 AM
does the hash come from the decompressed swf or the original swf?
You need a software called flasm
flasm -x file.swf
borboleta
07-20-2009, 05:36 PM
Thanks for the info, I have Flasm and OpenSSL applications installed. Now, My problem is with RTMPE downloads from Hulu. All the sniffers I use are not detecting any RTMP and RTMPE links to be used by RTMPDUMP.It tseems they went to a Hulu version 3, I see lots of http entries and xml tags. Any help is appreciated.
any ANONYMOUS forum user
07-21-2009, 01:32 AM
Thanks for the info, I have Flasm and OpenSSL applications installed. Now, My problem is with RTMPE downloads from Hulu. All the sniffers I use are not detecting any RTMP and RTMPE links to be used by RTMPDUMP.It tseems they went to a Hulu version 3, I see lots of http entries and xml tags. Any help is appreciated.
How to find RTMPE stream URLs
rookie
08-24-2009, 05:10 AM
can someone please help me? I get the error:
problem accessing the DNS. (addr: cp534.edgefcs.net)
Failed to connect!
I'm trying to download the following url using this command:
rtmpdump\1.6.exe rtmpdump -r "rtmpe://cp534.edgefcs.net/ondemand/mtvnorigin/gsp.vhonecomstor/vh1.com/shows/for_the_love_of_ray_j/vh_rt163716_ftlorj_109_hl_s1_640x480_1600.mp4" -o 9pt1.flv
But it's not able to download! because of the error of course. I tried to use the resume fuction AND even PLAY the video while trying to download (not a live stream) here is the vh1 url if someone is able to help:
http://www.vh1.com/video/play.jhtml?id=1608134
I got the rtmpe url from urlsnooper, thanks SOO much if anyone is able to help!! :D
ps - I tried the resume fuction as well and same error yet again occured..
Stream Recorder
08-24-2009, 10:17 AM
rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) seems to be a very good program, but for whatever reason I haven't seen any decent tutorials for it. It so hard to use it.
If you can find the same video on mtv.com, you may try freeware MTV Grabber (http://all-streaming-media.com/record-video-stream/GrabToolz-MTV-Grabber-freeware-MTV-video-downloader.htm). Also there are a couple of commercial applications that support RTMPE streams: GetFLV (http://all-streaming-media.com/record-video-stream/GetFLV-Download-and-convert-flash-video-streaming.htm) (which is presumably based on rtmpdump) and save2pc Pro + Extra Pack (http://all-streaming-media.com/record-video-stream/save2pc-Rip-and-convert-flash-video-streaming.htm)
Sam123
08-30-2009, 09:50 AM
Hey guys,
it seems like I've got what I wanted and tried the rtmpe url I was trying to dump. No luck there -- it's not surprising because Adobe has been working hard to get rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) erased from history.
Stream Recorder
08-30-2009, 11:13 PM
Hey guys,
it seems like I've got what I wanted and tried the rtmpe url I was trying to dump. No luck there -- it's not surprising because Adobe has been working hard to get rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) erased from history.
GetFLV (http://all-streaming-media.com/record-video-stream/GetFLV-Download-and-convert-flash-video-streaming.htm) is supposedly based on rtmpdump and it can download from many web-sites offering RTMPE streams. The major problem with rtmpdump is that it is very hard to provide all the necessary parameters correctly.
filou
09-30-2009, 06:56 AM
hi :)
i cant download rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) here is it possible to have a link for windows???
Stream Recorder
09-30-2009, 07:05 AM
i cant download rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) here is it possible to have a link for windows???
Where can I download rtmpdump.exe 1.6 (Windows, Linux, Mac OS) with source code
Stream Recorder
11-17-2009, 07:08 AM
rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) 1.9 is available. And it is hosted by mplayer. I wonder whether it has any RTMPE support or not.
tdselgas
11-21-2009, 01:49 PM
To compile rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) v 1.9 on Mac OSX 10.6 Snow Leopard you will need to do the following:
1) Install Xcode 3.2 from the Snow Leopard Installation DVD
2) Edit the "streams.cpp" file in the "rtmpdump-1.9" folder by replacing all (two) occurrences of "MSG_NOSIGNAL" with "SO_NOSIGPIPE".
You can now run the command: "make osx" and successfully compile the rtmpdump file :)
DJGreenleaf
12-01-2009, 03:28 AM
I've been ripping RTMPE .mp4s/.flvs with RTMPdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) for a couple of days, since I've figured out how. I ripped the Ray J. video that was mentioned by rookie earlier in the thread. If you need any proof of the skills, PM me. I can help, just let me know what you need.
compn
12-02-2009, 06:24 AM
here is a simple rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) howto for Ubuntu 9.10:
Compiling rtmpdump and downloading RTMP Flash media with rtmpdump (Ubuntu 9.10) (http://constantcuriousity.blogspot.com/2009/11/downloading-rtmp-flash-media-with.html)
Stream Recorder
12-02-2009, 06:58 AM
here is a simple rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) howto for Ubuntu 9.10:
Compiling rtmpdump and downloading RTMP Flash media with rtmpdump (Ubuntu 9.10) (http://constantcuriousity.blogspot.com/2009/11/downloading-rtmp-flash-media-with.html)
Great tutorial!
Today I attended a lecture/demo session on "hacking" various media sites like YouTube, Hulu, last.fm. Essentially it was a practical demonstration of the cat and mouse game hackers play with content pedlars on the internet....
One of the tools mentioned was rtmpdump (http://all-streaming-media.com/record-video-stream/rtmpdump-freeware-console-RTMP-downloading-application.htm) ...
I decided to compile it myself from the most recent development version. If you're lazy and brave enough to trust compiled binaries and packages from third parties, go to LinuxCentre (http://linuxcentre.net/getiplayer/download) and install flvstreamer for your operating system. These programs were once one and so far they use the same commands. Read: they work the same.
(Editor's note: flvstreamer doesn't support RTMPE secure streams)
These instrucitons work on Ubuntu (http://www.ubuntu.com/) 9.10 (karmic) but please be aware things change rapidly so the following might not work forever.
First of all install the tools needed for accessing the code and compilation.
sudo apt-get install build-essential gcc make subversion libssl0.9.8 libssl-dev libssl0.9.8Now check out the latest code from the Subversion (http://subversion.tigris.org/) repository:
svn co svn://svn.mplayerhq.hu/rtmpdump rtmpdumpIf you prefer a stable version, run this instead:
wget http://rtmpdump.mplayerhq.hu/rtmpdump-1.9.tgz
tar xfz rtmpdump-1.9.tgz
mv rtmpdump-1.9 rtmpdumpI'm sure the impatient are looking forward to completing this ASAP so here's the final step in setting up rtmpdump on your computer:
cd rtmpdump
make linuxThe program now lies in the same folder and you can only run it by telling your shell (like bash) exactly where it is. If you're in the same folder, running it is as simple as ./rtmpdump but ./ is only short for the current folder and it gets expanded to (in my case) /home/jasa/rtmpdump/rtmpdump.
Great! Now we need a media site which uses a Adobe's RTMP (http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol) server. I think I won't get in trouble if I use VideoLectures.net as an example. :)
Lets say I'm interested in probability and statistics (http://videolectures.net/bootcamp07_keller_bss/). And I want to watch these lectures offline, on a train or wherever.
Unfortunately this isn't a straightforward process and quite a bit of work is required. It is derived from a mailing list thread (http://lists.mplayerhq.hu/pipermail/rtmpdump/2009-November/000053.html).
I need to see the source code of the web page above, not the rendered output of the web browser. In Firefox press Ctrl+U. Now I need some hard data to pass to rtmpdump. Search for a javascript section which launches the flash video player. For the statistics video this is the interesting section:
var flashvars = {
streamer: "rtmp://oxy.videolectures.net/video",
file: "2007/pascal/bootcamp07_vilanova/keller_mikaela/bootcamp07_keller_bss_01.flv",
height: '288',
autostart: "true",
bufferlength: '5',
image: "http://media.videolectures.net/play.png",
id: "FlvPlayer" // last line, no colon ',' !
};
swfobject.embedSWF("http://media.videolectures.net/jw-player/player.swf", "video_embed", "384", "307", "9.0.0", "http://media.videolectures.net/swfobject/expressInstall.swf", flashvars, params, attributes);Generally searching (Ctrl+F) for flashvars should get you near the required data. The line swfobject.embedSWF(...) causes the video player to load inside your browser and display the correct media. This media rests on a different server than the webpage and I will use rtmpdump to connect to that server instead of the flash player. Now Adobe has put some roadblocks into the process but lucky for me I have a flying car. :)
I'll just give you the final command now and explain later!
./rtmpdump -r rtmp://oxy.videolectures.net/video/ -y 2007/pascal/bootcamp07_vilanova/keller_mikaela/bootcamp07_keller_bss_01 -a video -s http://media.videolectures.net/jw-player/player.swf -w ffa4f0c469cfbe1f449ec42462e8c3ba16600f5a4b311980bb 626893ca81f388 -x 53910 -o test.flvThe -r switch requires an argument which is the URL of the media server and is found in the variable streamer in the JavaScript source code above.
The -y switch needs the playpath and that is found in the JavaScript variable file, (minus the extension .flv or .mp4).
The -a switch is the name of the used player and usually automatically inferred from the URL. Defining it manually works by copying the part after the server name in the streamer.
The -s switch defines the flash video player which normally connects to the media server. In the example it is the first argument of the function embedSWF.
Here's where things get even more complicated. The media server wants some extra data about this player, specifically its sha256 hash-sum (http://en.wikipedia.org/wiki/Hash_function) and size in bytes. So lets get them:
wget http://media.videolectures.net/jw-player/player.swf
sha256sum player.swf
ls -l player.swfSupply the sha356sum to switch -w and the file size to the -x switch.
Anything else? Yeah, I need to specify where to save the video with -o.
Run the longest command ever and get yourself a beer (you've earned it)! :)
I admit that doing this for every video gets time consuming but unfortunately it is a procedure specific to every site. Look at the mailing list thread link again to see different javascript:
For anyone curious, I found that wisevid is using plain RTMP with SWF
verification.
This invocation works for me:
rtmpdump -r rtmp://stream1.wisevid.com/flvs -s http://wisevid.com/player.swf -y 82330 -a flvs -z -o xxx -w e09b300f1f1e2cc75878ab11258ba4c17f28a315ea9df26f67 b37c7f59332737 -x 110543Starting from this web page
http://www.wisevid.com/view_video.php?viewkey=0052slrjt6n74lz84848The relevant information from that page is in this bit of javascript
<script type="text/javascript">
var player = null;
function playerReady(thePlayer) { player = window.document[thePlayer.id]; }
var so = new SWFObject('player.swf','mpl','570','340','9');
so.addParam('allowscriptaccess','always');
so.addParam('allowfullscreen','true');
so.addParam('wmode','transparent');
so.addParam('flashvars','&file=82330.flv&streamer=rtmp://stream1.wisevid.com/flvs&skin=http://wisevid.com/modieus1.swf&stretching=exactfit&autostart=true&abouttext=WiseVid.com&aboutlink=http://wisevid.com');
so.write('player');
</script> But for the same site there's very little extra work.
Hope you lasted this long, be seeing ya!
any ANONYMOUS forum user
12-16-2009, 10:57 PM
In simple cases you should not need to use the -a option; rtmpdump ought to parse the application name out of the rtmp url itself. Sometimes it gets it wrong though, especially with the more obfuscated sites.
helpdeskdan
12-24-2009, 11:17 PM
Thanks for the guide, the referenced blog is already taken down. Too bad there are not more guides and scripts.
compn
12-25-2009, 04:31 AM
it moved here: http://constcuriosity.blogspot.com/2009/11/downloading-rtmp-flash-media-with.html
guardianx
12-27-2009, 12:45 AM
well the website make things ez because everything is out in the open..
vBulletin® , Copyright ©2000-2010, Jelsoft Enterprises Ltd.