chrippa / livestreamer

Command-line utility that extracts streams from various services and pipes them into a video player of choice. No longer maintained, use streamlink or youtube-dl instead.
http://livestreamer.io/
BSD 2-Clause "Simplified" License
3.88k stars 586 forks source link

New twitch.tv layout is adding extra characters to the rtmpdump jtv token #14

Closed frodri closed 11 years ago

frodri commented 12 years ago

Here's an example of the console command generated by livestreamer:

rtmpdump --swfUrl http://www.justin.tv/widgets/live_embed_player.swf --jtv 73bb005b37fb119ba4ad02261139812723209fbd:{"swfDomains": <<<<  ["justin.tv", "jtvx.com", "xarth.com", "twitchtv.com", "twitch.tv", "newjtv.com", "jtvnw.net", "wdtinc.com", "imapweather.com", "facebook.com", "starcrafting.com"], "streamName": "akamai4_349@24975", "expiration": 1339884084.1537421, "server": "akamai"} --flv - --live --rtmp rtmp://live-cdn.jtvnw.net/live/akamai4_349@24975 --swfsize 633838 --swfhash a123dac970e3164aa2bf997e00d568cc4de31835cfaf32c5c03ae39698f5283d | mplayer2 -quiet  -

The command causes livestreamer to fail, but the stream works fine if I remove the 4 < signs from the command manually.

chrippa commented 12 years ago

Hmm, could you link the url you are trying? I do not get the same problem with any streams I've tried.

frodri commented 12 years ago

http://twitch.tv/[insert-channel-name]

Full error message with TeamSp00ky's stream:

> livestreamer http://twitch.tv/teamsp00ky 360p
Unexpected token ':' in expression or statement.
At line:1 char:131
+ rtmpdump --swfUrl http://www.justin.tv/widgets/live_embed_player.swf --jtv 8e
99ba9a75db2d8ecc8b4e8156dca6de2c7397b1:{"swfDomains": <<<<  ["justin.tv", "jtvx
.com", "xarth.com", "twitchtv.com", "twitch.tv", "newjtv.com", "jtvnw.net", "wd
tinc.com", "imapweather.com", "facebook.com", "starcrafting.com"], "streamName"
: "jtv_5QkM5d35yug2bnVQ", "expiration": 1339891599.553951, "server": "lax01-vid
eo21-2"} --flv - --live --rtmp rtmp://199.9.254.177/app/jtv_5QkM5d35yug2bnVQ --
swfsize 633838 --swfhash a123dac970e3164aa2bf997e00d568cc4de31835cfaf32c5c03ae3
9698f5283d | mplayer2 -quiet -
    + CategoryInfo          : ParserError: (::String) [], ParentContainsErrorR
   ecordException
    + FullyQualifiedErrorId : UnexpectedToken

I'm on Windows XP, rtmpdump 2.4 and Python 2.7.2.

chrippa commented 12 years ago

I actually had never tested livestreamer on Windows before today. However, I just tried it and it seems to work fine for me except that is fails to launch VLC, but that's because I don't have /bin/sh on Windows and can probably be fixed some other way. Using file output worked fine though.

Your error message does look kind of strange, not the way Python backtraces normally look like... could you explain a bit more in detail how you're running it?

frodri commented 12 years ago

I'm running it on a netbook, with the console version of mplayer2 as the player. No MSYS, no cygwin, just plain old cmd. Worked pretty well before the twitch.tv update. (Now that I think about it, though, I might be running an old build on it. I'll check and come back with an update.)

chrippa commented 12 years ago

I commited a few fixes for a few Windows specific things, also updated README with some install instructions that works for me. I've tried it on Windows 7, Python 2.7 and a git-build of rtmpdump from their website and it now works just as on *nix. Hope it works for you aswell.

frodri commented 12 years ago

Updated the build yesterday. That fixed the "unexpected token" problem. I got a subprocess error after updating, but moving the rtmpdump fixed that as well. I do have one last problem, though. When the data is piped into the player (I've tested this on both mplayer2 and vlc 2.0.0) the player cannot determine the file type (e.g.: undf file type on vlc) that's being streamed in. Using file output mode, however, works fine now.

chrippa commented 12 years ago

ac006c29ea56af11b1fdb9ef57882220affc687e should fix this.