<tr><td>LIBRTMP(3)<td align="center"><td align="right">LIBRTMP(3)
</thead>
<tfoot>
-<tr><td>RTMPDump v2.3<td align="center">2010-07-03<td align="right">LIBRTMP(3)
+<tr><td>RTMPDump v2.4<td align="center">2011-07-20<td align="right">LIBRTMP(3)
</tfoot>
<tbody><tr><td colspan="3"><br><br><ul>
-<!-- Copyright 2010 Howard Chu.
+<!-- Copyright 2011 Howard Chu.
Copying permitted according to the GNU General Public License V2.-->
</ul>
</dl>
<p>
<dl compact><dt>
+<b>jtv=</b><i>JSON</i>
+<dd>
+JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken
+</dl>
+<p>
+<dl compact><dt>
<b>swfVfy=</b><i>0|1</i>
<dd>
If the value is 1 or TRUE, the SWF player is retrieved from the
{ AVC("subscribe"), OFF(Link.subscribepath), OPT_STR, 0,
"Stream to subscribe to" },
{ AVC("jtv"), OFF(Link.usherToken), OPT_STR, 0,
- "Justin.tv authentication token" },
+ "Justin.tv authentication token" },
{ AVC("token"), OFF(Link.token), OPT_STR, 0,
"Key for SecureToken response" },
{ AVC("swfVfy"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_SWFV,
return RTMP_SendPacket(r, &packet, TRUE);
}
-//Justin.tv specific authentication
-static const AVal av_NetStream_Authenticate_UsherToken = AVC("NetStream.Authenticate.UsherToken"); //SAVC() isn't suitable for that
+/* Justin.tv specific authentication */
+static const AVal av_NetStream_Authenticate_UsherToken = AVC("NetStream.Authenticate.UsherToken");
static int
SendUsherToken(RTMP *r, AVal *usherToken)
<tr><td>RTMPDUMP(1)<td align="center"><td align="right">RTMPDUMP(1)
</thead>
<tfoot>
-<tr><td>RTMPDump v2.2e<td align="center">2010-05-02<td align="right">RTMPDUMP(1)
+<tr><td>RTMPDump v2.4<td align="center">2011-07-20<td align="right">RTMPDUMP(1)
</tfoot>
<tbody><tr><td colspan="3"><br><br><ul>
-<!-- Copyright 2010 Howard Chu.
+<!-- Copyright 2011 Howard Chu.
Copying permitted according to the GNU General Public License V2.-->
</ul>
[<b>−b</b><i> buffer</i>]
[<b>−m</b><i> timeout</i>]
[<b>−T</b><i> key</i>]
+[<b>−j</b><i> JSON</i>]
[<b>−w</b><i> swfHash</i>]
[<b>−x</b><i> swfSize</i>]
[<b>−W</b><i> swfUrl</i>]
</dl>
<p>
<dl compact><dt>
+<b>−−jtv −j</b> <i>JSON</i>
+<dd>
+JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken
+</dl>
+<p>
+<dl compact><dt>
<b>−−swfhash −w</b> <i>hexstring</i>
<dd>
SHA256 hash of the decompressed SWF file. This option may be needed if
case 'S':
STR2AVAL(sockshost, optarg);
break;
- case 'j':
- STR2AVAL(usherToken, optarg);
- break;
+ case 'j':
+ STR2AVAL(usherToken, optarg);
+ break;
default:
RTMP_LogPrintf("unknown option: %c\n", opt);
usage(argv[0]);
<tr><td>RTMPGW(8)<td align="center"><td align="right">RTMPGW(8)
</thead>
<tfoot>
-<tr><td>RTMPDump v2.2e<td align="center">2010-05-02<td align="right">RTMPGW(8)
+<tr><td>RTMPDump v2.4<td align="center">2011-07-20<td align="right">RTMPGW(8)
</tfoot>
<tbody><tr><td colspan="3"><br><br><ul>
-<!-- Copyright 2010 Howard Chu.
+<!-- Copyright 2011 Howard Chu.
Copying permitted according to the GNU General Public License V2.-->
</ul>
[<b>−b</b><i> buffer</i>]
[<b>−m</b><i> timeout</i>]
[<b>−T</b><i> key</i>]
+[<b>−j</b><i> JSON</i>]
[<b>−w</b><i> swfHash</i>]
[<b>−x</b><i> swfSize</i>]
[<b>−W</b><i> swfUrl</i>]
</dl>
<p>
<dl compact><dt>
+<b>−−jtv −j</b> <i>JSON</i>
+<dd>
+JSON token used by legacy Justin.tv servers. Invokes NetStream.Authenticate.UsherToken
+</dl>
+<p>
+<dl compact><dt>
<b>−−swfhash −w</b> <i>hexstring</i>
<dd>
SHA256 hash of the decompressed SWF file. This option may be needed if
("--stop|-B num Stop at num seconds into stream\n");
RTMP_LogPrintf
("--token|-T key Key for SecureToken response\n");
- RTMP_LogPrintf
+ RTMP_LogPrintf
("--jtv|-j JSON Authentication token for Justin.tv legacy servers\n");
RTMP_LogPrintf
("--buffer|-b Buffer time in milliseconds (default: %lu)\n\n",
AVal swfHash;
AVal flashVer;
AVal subscribepath;
- AVal usherToken;
uint32_t swfSize;
uint32_t dStartOffset;