PDA

View Full Version : Problematic RTMP Server - Tinychat [[DYNAMIC]]?


rtmpdumpuser
10-30-2011, 06:04 PM
I was previously able to download streams from tinychat.com using rtmpdump, but they recently made some adjustments to their server and now I cannot.

Here are typical headers flash sends to tinychat's rtmp server:

rtmp://174.122.202.2:80/tinyconf/5010
app: tinyconf
flashVer: WIN 11,0,1,152
pageUrl: http://tinychat.com/testroom
swfUrl: http://tinychat.com/embed/Tinychat-10.3-1.0.0.0301.swf?version=1.0.0.0301/[[DYNAMIC]]/8
tcUrl: rtmp://174.122.202.2:80/tinyconf
playPath: 5010


From this I invoked rtmpdump with the following arguments

rtmpdump -r "rtmp://174.122.202.2:80/tinyconf/5010" --app tinyconf --flashVer "WIN 11,0,1,152" --pageUrl "http://tinychat.com/testroom" --swfUrl "http://tinychat.com/embed/Tinychat-10.3-1.0.0.0301.swf?version=1.0.0.0301/[[DYNAMIC]]/8" --tcUrl "rtmp://174.122.202.2:80/tinyconf" --playpath "5010" -W "http://tinychat.com/embed/Tinychat-10.3-1.0.0.0301.swf?version=1.0.0.0301/[[DYNAMIC]]/8"


but rtmpdump fails with

WARNING: HandShake: client signature does not match!
INFO: Connected...
ERROR: Closing connection: NetStream.Play.Failed

There are also some additional headers which I cannot replicate using rtmpdump:

DEBUG: Property: <Name: objectEncoding, NUMBER: 0.00>
DEBUG: (object end)
DEBUG: Property: <Name: no-name., STRING: testroom>
DEBUG: Property: <Name: no-name., STRING: none>
DEBUG: Property: <Name: no-name., STRING: default>
DEBUG: Property: <Name: no-name., STRING: tinychat>
DEBUG: Property: <Name: no-name., STRING: >

Is anyone able to download tinychat streams through rtmpdump? I think the problem may be related to the [[DYNAMIC]]. What could [[DYNAMIC]] represent/mean?

KSV
10-31-2011, 12:53 AM
[[DYNAMIC]] in swf url has nothing to do with the ability to connect and record the stream. you need to append custom AMF data to connect packet with (-C | --conn) switch to successfully connect to the server.

rtmpdump -r "rtmp://174.122.202.74:443/tinyconf" -a "tinyconf" -W "http://tinychat.com/embed/Tinychat-10.3-1.0.0.0301.swf" -C S:hollywoodempire -C S:none -C S:show -C S:tinychat -C S: -y "122253" --live -o Test.flv

RTMPDump v2.4 GIT-2011-09-30 (Compiled by KSV)
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
WARNING: HandShake: client signature does not match!
INFO: Connected...
Starting Live Stream
1175.362 kB / 50.24 sec

chap
10-31-2011, 01:10 AM
KSV
you have decoded?
-C S:hollywoodempire -C S:none -C S:show -C S:tinychat -C S:

KSV
10-31-2011, 01:17 AM
yeah it's the custom AMF data that needs to be appended to connect packet.

chap
10-31-2011, 01:31 AM
yeah it's the custom AMF data that needs to be appended to connect packet.
Where to find them?

KSV
10-31-2011, 01:33 AM
i have used wireshark.

rtmpdumpuser
10-31-2011, 10:13 AM
Thanks for the help, KSV. I tried appending AMF data earlier, but I was missing the null string.

Do you know what the proper syntax is for the NB:name:boolean, NS:name:string, and NN:name:number parameters?

I tried -C NS:name:value but rtmpdump says "ERROR: Invalid AMF parameter: NS:name:value"

I know it's not needed in this particular instance, but it may be needed in the future.

Also, out of curiosity, do you have any idea why [[DYNAMIC]] often appears in RTMP swfUrls?

KSV
10-31-2011, 12:03 PM
Do you know what the proper syntax is for the NB:name:boolean, NS:name:string, and NN:name:number parameters?

I tried -C NS:name:value but rtmpdump says "ERROR: Invalid AMF parameter: NS:name:value"

I know it's not needed in this particular instance, but it may be needed in the future.

rtmpdump only allows named variables inside an object. so you must put them inside AMF object. e.g.
-C O:1 -C NS:name:value -C O:0


Also, out of curiosity, do you have any idea why [[DYNAMIC]] often appears in RTMP swfUrls?

not sure but AFAIK [[DYNAMIC]] and [[IMPORT]] are used to control which flex app can import or load that swf file. nothing a user should care about.