7

I have been trying to figure out a way to record NASATV HD live feed/broadcast but it seems to be harder than I envisioned.

Anybody with enlightened suggestions? I am in the dark...

Jorge Castro
  • 71,754

2 Answers2

7

After following the instructions from this initial blog post, I managed to extract the ISS live url for NASA TV and get it playing in VLC.

Please first install rtmpdump and vlc, as you require them to follow this article.

Notes and Updates:

  1. Important Update (June 28, 2013): the script from the above site does not now correctly locate the broadcasts, so you must use the updated script at at Github. Download it and make it executable; call it ustream-recorder.

    I have rewritten the article so that it is still useful. You will need to repeat the following process below each time you wish to watch a live broadcast as the rtmp streams do not remain valid for long.

  2. Another update (September 2013): the regex for parsing the urls in the ustream script seems to need fixing (I'll try..), but in the meantime, we can use the iphone streaming url, at least for the main NASA TV on the desktop, as found using the online ustream url converter. Vlc can be used to open the url and stream the content:

    vlc "http://iphone-streaming.ustream.tv/ustreamVideo/6540154/streams/live/playlist.m3u8"
    

    See also at the end of this article for information on downloading or streaming recorded ustream videos (NASA or otherwise) with get_flash_player.


For each NASA channel listed on ustream.tv, you must run the script against the correct url to discover the valid stream information:

python /location/of/ustream_recorder http://www.ustream.tv/nasahdtv

Now you will receive the following output with the rtmp url that you need to use:

Opening url: http://www.ustream.tv/nasahdtv

AMF URL: http://cdngw.ustream.tv/Viewer/getStream/1/6540154.amf
Channel ID: 6540154
Channel Title: nasahdtv
RTMP URL: rtmp://ustreamlivefs.fplive.net/ustream3live-live/
RTMP Streamname: stream_live_1_1_6540154

RTMP Command: rtmpdump -v -r "rtmp://ustreamlivefs.fplive.net/ustream3live-live//stream_live_1_1_6540154" -W "http://www.ustream.tv/flash/viewer.swf" --live

The 'RTMP Command' part of the above output is what you need to take note of and use in your commands to either stream, record, or stream and record the media.

(Please be aware that you need to use the script to generate the rtmp server address everytime, so the rtmp url below will probably not work after a few days when ustream rotates the servers.)

  1. To just play the media, add | vlc - to the rtmp command discovered by the script:

    rtmpdump -v -r "rtmp://ustreamlivefs.fplive.net/ustream3live-live//stream_live_1_1_6540154" -W "http://www.ustream.tv/flash/viewer.swf" --live | vlc -
    
  2. To play and record, add | tee "$(date +'%F_%H_%M_%S')".flv | vlc - to the rtmp command:

    rtmpdump -v -r "rtmp://ustreamlivefs.fplive.net/ustream3live-live//stream_live_1_1_6540154" -W "http://www.ustream.tv/flash/viewer.swf" --live | tee "$(date +'%F_%H_%M_%S')".flv | vlc -
    
  3. To just record, add -o "$(date +'%F_%H_%M_%S')".flv to the rtmp command:

    rtmpdump -v -r "rtmp://ustreamlivefs.fplive.net/ustream3live-live//stream_live_1_1_6540154" -W "http://www.ustream.tv/flash/viewer.swf" --live -o "$(date +'%F_%H_%M_%S')".flv
    

I have used date with the filename created, so a unique filename is created and thus any files will not clash or be overwritten.

Again, remember that you will need to run the ustream-recorder script yourself to find valid rtmp urls, as these example urls above will only be valid for a short time.


Additional Note:

It is also possible to use the get-flash-videos Perl script to stream or download pre-recorded ustream NASA content. It is in the repositories, but you may need the latest version. It is best to install the repository version, as a lot of dependencies are needed, and then run the latest version from $HOME if you need to, as noted here.

There are actually a couple of dependencies that I also needed libmodule-find-perl, libwww-mechanize-perl and libxml-simple-perl.

  1. To download a pre-recorded program:

    get_flash_videos http://www.ustream.tv/recorded/25391855
    

    Sample output:

    Using method 'ustream' plugin version 0.01 for http://www.ustream.tv/recorded/25391855
    Downloading http://www.ustream.tv/recorded/25391855
    Downloading http://tcdn.ustream.tv/video/25391855...
    The_Challenges_of_Mars_Exploration.flv: 1% (6017.34 / 387974.54 KiB)
    
  2. To play and download a pre-recorded program, just use the -p option

    get_flash_videos -p --player=vlc http://www.ustream.tv/recorded/25391855 
    

enter image description here

enter image description here

See important note at the top of the post regarding updating the rtmp url information and using the correct script to find the rtmp urls.

Johnson Space Centre

  • Thank you Mik and jmolinaso for the exhausting information and the time you took to write it out and post it. – rocketstef Aug 20 '12 at 13:54
  • I have been trying to see what I could do using DOS commands, but I ended up nowhere. I did this since I do not own Linux, even though I've been leaning that way, rather than Windows. But since my pc runs windows, I tried with good old DOS, with no luck, of course! Thanks again! – rocketstef Aug 20 '12 at 14:35
0

Did you try to use vlc? Personally for me is the best open source media player.

What you can do is to open the stream and save it to a file, is quite straight forward.

Now I'm curious, I'll try this evening at home.

Here you have the documentation

  • This used to work with vlc, but now you need to do some other things as well with rtmpdump-see below –  Jul 31 '12 at 17:41
  • nice!! I never tried for saving (combination of lack of need and lazyness, but I new you could) btw I also did it following your comments! Good job! –  Aug 01 '12 at 04:59