Audio/video stream recording forums

Attention Visitor:
You may have to register or log in before you can post:
  • Click the register link to sign up.
  • Registered members please fill in the form below and click the "Log in" button.
To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Audio/video stream recording forums > Streaming media recording forum > rtmpdump
Register FAQ Members List Calendar Mark Forums Read

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 11-02-2012, 10:45 AM
Mossy Mossy is offline
Junior Member
 
Join Date: Oct 2012
Posts: 4
Mossy is on a distinguished road
Default

Question: 4od, rtmpsuck, cookies and authentication


Two questions:
1) Why does rtmpsuck sometimes not record all parameters from the rtmp url?

2) How to handle websites that require you to login before you watch videos, and use cookies to store login information

Using
Linux 3.2.0-32-generic
rtmpdump/librtmp 2.4~20110711.gitc28f1bab-1

Note: This entire post relates only to Channel4/4od videos from before August. Since sometime mid-August all new videos use Http Dynamic Streaming on that site.

I'm using librtmp in a python script (XBMC plugin) to stream videos from 4od. There are two different servers that the videos stream from, with slightly different authentications, one is ll.securestream.channel4.com the other is ak.securestream.channel4.com. When you stream a video it randomly comes from one of those servers. Until recently both worked fine from the plugin, but since the other day the AK server has stopped working. I think they started requiring users to be logged in to watch videos older than 30 days at the same time.

In order to figure out what's changed I've been using rtmpsuck to compare the rtmp parameters from the plugin and from the browser. The parameters look identical in that comparison, but for the LL server the authentication details are missing from app and tcUrl in the rtmpsuck output, even though the videos play.

librtmp parameters when using LL server for video at http://www.channel4.com/programmes/f...er/4od#3188820
Code:
rtmpe://ll.securestream.channel4.com:1935/a4174/e1/?e=1351863246&h=1d729ce414034a9a73c91bc4f01c4615 playpath=mp4:xcuassets/CH4_08_02_900_42045006001002_002.mp4?e=1351863246&h=1d729ce414034a9a73c91bc4f01c4615 swfurl=http://www.channel4.com/static/programmes/asset/flash/swf/4odplayer-11.31.2.swf flashver=LNX\2011,2,202,243 pageurl=http://www.channel4.com swfvfy=true
rtmpsuck output when using LL server:
Code:
RTMP Proxy Server v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu; license: GPL

Streaming on rtmp://0.0.0.0:1935
Processing connect
app: a4174/e1
flashVer: LNX 11,2,202,243
swfUrl: http://www.channel4.com/static/programmes/asset/flash/swf/4odplayer-11.31.2.swf
tcUrl: rtmpe://ll.securestream.channel4.com:1935/a4174/e1
pageUrl: http://www.channel4.com
WARNING: HandShake: Type mismatch: client sent 6, server answered 8

The fact there is parameter data missing from rtmpsuck's output when using LL means that the browser could be truncating data from AK.

For comparison here's the info for AK.
librtmp parameters:
Code:
rtmpe://ak.securestream.channel4.com:1935/4oD/?auth=da_cqbuaobgcEb8bkc_dMbucCdzdvcWdxcv-bqK6.e-eS-jyM-oRpbj8jfkXmdr8jbsVockfsVnUkgqSj7ndpfkSjdjbmcrakSraoekfsXmekeqSjbo1qfkekXkdndsfkh&aifp=v002&slist=assets/CH4_08_02_900_42045005001002_002.mp4 playpath=mp4:assets/CH4_08_02_900_42045005001002_002.mp4?auth=da_cqbuaobgcEb8bkc_dMbucCdzdvcWdxcv-bqK6.e-eS-jyM-oRpbj8jfkXmdr8jbsVockfsVnUkgqSj7ndpfkSjdjbmcrakSraoekfsXmekeqSjbo1qfkekXkdndsfkh&aifp=v002&slist=assets/CH4_08_02_900_42045005001002_002.mp4 swfurl=http://www.channel4.com/static/programmes/asset/flash/swf/4odplayer-11.31.2.swf flashver=LNX\2011,2,202,243 pageurl=http://www.channel4.com swfvfy=true
rtmpsuck output for AK:
Code:
RTMP Proxy Server v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu; license: GPL

Streaming on rtmp://0.0.0.0:1935
Processing connect
app: 4oD?auth=da_cOdKdya9cNdnbjddaaaHataPd6cGdxdP-bqK6hd-eS-dAS-oUkgsfnWscm5j9nUs9lYr9mXmclVjeqYn7k9tYnTtVnRjcm8s9k8rclfm8lTkXqTn6ldsdnRtfn3j9nT&aifp=v002&slist=assets/CH4_08_02_900_42045005001002_002.mp4
flashVer: LNX 11,2,202,243
swfUrl: http://www.channel4.com/static/programmes/asset/flash/swf/4odplayer-11.31.2.swf
tcUrl: rtmpe://ak.securestream.channel4.com:1935/4oD?auth=da_cOdKdya9cNdnbjddaaaHataPd6cGdxdP-bqK6hd-eS-dAS-oUkgsfnWscm5j9nUs9lYr9mXmclVjeqYn7k9tYnTtVnRjcm8s9k8rclfm8lTkXqTn6ldsdnRtfn3j9nT&aifp=v002&slist=assets/CH4_08_02_900_42045005001002_002.mp4
pageUrl: http://www.channel4.com
WARNING: HandShake: Type mismatch: client sent 6, server answered 8
Note that app and tcUrl retain the authentication info passed to librtmp.

Is there a way that I can be sure I'm getting all the information passed to the rtmpe server?

Output in XBMC, using AK:
Code:
14:31:20 T:2975841088    INFO: Parsing...
14:31:20 T:2975841088    INFO: Parsed protocol: 2
14:31:20 T:2975841088    INFO: Parsed host    : ak.securestream.channel4.com
14:31:20 T:2975841088    INFO: Parsed app     : 4oD?auth=da_cec.dCczdzdUcpbibXbvb4cqbBdYcmbY-bqK9KP-eS-hzO-rfo8obqTpRsStTkfqXp7rVkVl9j8oSlesWpXo8qVpTrdsekapbqRqakWl9jandmVr8oap8pgp5sWtblX&aifp=v002&slist=assets/CH4_08_02_900_42045006001002_002.mp4
14:31:20 T:2975841088   ERROR: RTMP_Connect0, failed to connect socket. 111 (Connection refused)
Note also that the above librtmp parameters for AK was done with some of parameters changed slightly to match exactly what rtmpsuck showed was coming from the browser.

The following is are the librtmp parameters as they were previously, which I believe was working up until a few days ago:

Code:
rtmpe://ak.securestream.channel4.com:1935/4oD/?ovpfv=1.1&auth=da_bcbkbNaVbDdecDdabMdNb2bkb0c2b9d4-bqK9XP-eS-fyM-tSqetWncscj7r8tWnejemVnflVpfl9jctRrTsbn8tUkVr8tToSkVl9oWlYp6lejftYrcscnethkXs0se&aifp=v002&slist=assets/CH4_08_02_16_49122006001001_002.mp4 playpath=mp4:assets/CH4_08_02_16_49122006001001_002.mp4?auth=da_bcbkbNaVbDdecDdabMdNb2bkb0c2b9d4-bqK9XP-eS-fyM-tSqetWncscj7r8tWnejemVnflVpfl9jctRrTsbn8tUkVr8tToSkVl9oWlYp6lejftYrcscnethkXs0se&aifp=v002&slist=assets/CH4_08_02_16_49122006001001_002.mp4 swfurl=http://www.channel4.com/static/programmes/asset/flash/swf/4odplayer-11.31.2.swf swfvfy=true
... and the librtmp output:

Full text, ending with ...
Code:
NetConnection.Connect.Rejected
AccessManager.Reject ] : Access denied!
The differences between the librtmp outputs may indicated the the changes I made to the parameters (in an attempt to match what was being passed from the browser) made things worse.


Question 2)
It's possible that only users who are logged in can view videos from the AK server, in which case I need to know how to handle the cookies that are used to store login/session data. Obviously rtmp doesn't know anything about cookies, so how is this normally handled by websites? Do they usually only allow to rtmp from IPs of users who are logged in? If that is the case with AK then when I'm logged in to the site in a browser, I would expect to be able to stream with rtmpdump. That does not happen. Or is it normally the case that having the correct rtmp parameters is enough to allow access, regardless of how the website handles logins?

Last edited by Mossy : 11-02-2012 at 12:47 PM.
Reply With Quote
 
Tags: , , ,



Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -6. The time now is 11:28 PM.


Powered by All-streaming-media.com; 2006-2011
vB forum hacked with Zoints add-ons