pigskin / kodi-gamepass

NFL Game Pass add-on for Kodi
Other
122 stars 83 forks source link

Live games don´t play #5

Closed Zeral71 closed 11 years ago

Zeral71 commented 11 years ago

I´ve got no problems watching final games, but trying to watch a live game is a no show. Attached is a part of the xbmc.log. Seems fetching the url to the stream is ok, but trying to get the stream is not.

00:37:35 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: params: {'url': '8797', 'name': 'Buffalo Bills at Washington Redskins', 'mode': '4'} 00:37:35 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: Request URL: https://gamepass.nfl.com/nflgp/servlets/encryptvideopath 00:37:35 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: Server: nginx/1.2.6 Date: Sat, 24 Aug 2013 22:37:36 GMT Content-Type: text/xml;charset=UTF-8 Content-Length: 305 Connection: close Pragma: no-store Cache-Control: no-store Expires: 1 00:37:35 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: Video Path Acquired Successfully. 00:37:35 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: Request URL: http://nlds137.neulion.com:443/play?url=%2Fnlds%2Fnfl%2Fredskins%2Fas%2Flive%2Fredskins_hd_pc&eid=8797&pid=8797&gid=1000&uid=448408&plid=5aaccf4b06db388acf94ff35a733657c&auth_key=1f6f98d34a8151c2c84bbe9efb7d61c7-1377383976-32-%2A.m3u8%3B%2A.ts%3B%2A.mp4 00:37:36 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: Server: NeuLion Adaptive Streaming Server Date: Sat, 24 Aug 2013 22:37:36 GMT Expires: -1 Cache-Control: no-cache Last-Modified: Sat, 24 Aug 2013 22:37:34 GMT Set-Cookie: serverKey_internal_ASV3=d3882bdfbbd4a16a9b7a9d9fbfae0eb3-5aaccf4b06db388acf94ff35a733657c-1377396456-0; expires=Sun, 25 Aug 2013 02:07:36 GMT; path=/nlds/nfl/redskins/as/live/; domain=.neulion.com Connection: close Content-Type: text/xml Content-Length: 7328 00:37:38 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: ret: 0 00:37:38 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: Selected: {'url': u'/nlds/nfl/redskins/as/live/redskins_hd_4500', 'info': u'720x1280 Bitrate: 4608000', 'bitrate': 4608000, 'servers': [{'name': u'nlds137.cdnak.neulion.com', 'port': u'80'}, {'name': u'nlds137.cdnl3nl.neulion.com', 'port': u'80'}]} 00:37:38 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: Stream URL: http://nlds137.cdnl3nl.neulion.com/nlds/nfl/redskins/as/live/redskins_hd_4500 00:37:38 T:2760915776 NOTICE: [addon.nfl.gamepass-0.1.2]: Resolved URL: http://nlds137.cdnl3nl.neulion.com/nlds/nfl/redskins/as/live/redskins_hd_4500. 00:37:39 T:3005622080 NOTICE: DVDPlayer: Opening: http://nlds137.cdnl3nl.neulion.com/nlds/nfl/redskins/as/live/redskins_hd_4500 00:37:39 T:3005622080 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED 00:37:39 T:2760915776 NOTICE: Thread CDVDPlayer start, auto delete: false 00:37:39 T:2760915776 NOTICE: Creating InputStream 00:37:39 T:2760915776 WARNING: FillBuffer: curl failed with code 22 00:37:39 T:2760915776 ERROR: CCurlFile::CReadState::Open, didn't get any data from stream. 00:37:39 T:2760915776 ERROR: Open - failed to open source http://nlds137.cdnl3nl.neulion.com/nlds/nfl/redskins/as/live/redskins_hd_4500 00:37:39 T:2760915776 ERROR: CDVDPlayer::OpenInputStream - error opening [http://nlds137.cdnl3nl.neulion.com/nlds/nfl/redskins/as/live/redskins_hd_4500] 00:37:39 T:2760915776 NOTICE: CDVDPlayer::OnExit() 00:37:39 T:2760915776 NOTICE: CDVDPlayer::OnExit() deleting input stream 00:37:39 T:3005622080 ERROR: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.video.nfl.gamepass/?url=8797&name=Buffalo+Bills+at+Washington+Redskins&mode=4] 00:37:39 T:2760915776 NOTICE: Thread Background Loader start, auto delete: false 00:37:39 T:3005622080 NOTICE: CDVDPlayer::CloseFile() 00:37:39 T:3005622080 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED 00:37:39 T:3005622080 NOTICE: DVDPlayer: waiting for threads to exit 00:37:39 T:3005622080 NOTICE: DVDPlayer: finished waiting 00:37:57 T:2760915776 NOTICE: Thread XBPyThread start, auto delete: false

Zeral71 commented 11 years ago

Iḿ only guessing, but maybe it´s got something to do with the stream-url not having a video file extension.

Looking back in an older log file where I streamed a final game and comparing it with the part above, the biggest difference I see is the url of the final game having a mp4 extension, while the live game doesn´t have an extension at all.

meestark commented 11 years ago

Confirmed, same issue here with same errors

aqw commented 11 years ago

Yeah, I assume that their manifest response is different for live games than for archived ones. Since I live in Europe, most of the preseason games have been broadcast at inconvenient times for me to be awake. I'll see if I can catch the New Orleans at Houston game tonight to debug.

However, GamePass has been having some issues today (even through their official client), so it may not work out.

Thanks for the bug report.

---Alex

aqw commented 11 years ago

Ugh. So, it looks like they encrypt live streams using aes-128. I have no idea why, but they do.

In theory ffmpeg supports decrypting AES, and XBMC should have a version of ffmpeg that supports this.

http://ffmpeg.org/ffmpeg-protocols.html#crypto

However, I do not know how to pass these options to ffmpeg from within XBMC.

Unfortunately, the window to debug and test this is limited to game times while I'm awake. Any help with this is most appreciated.

---Alex

emilsvennesson commented 11 years ago

@Alexqw @divingmule I got NFL Network working in XBMC yesterday, a stream that's also encrypted with AES-128. Are you on IRC or something so we can communicate faster? I might have some valuable information to share.

aqw commented 11 years ago

Awesome news!

My email/IM is Alexqw85 at gmail dot com

---Alex

Zeral71 commented 11 years ago

Cool, was already looking into this too. Didn´t find anything yet. I´ll wait on your guys progress before searching further.

aqw commented 11 years ago

dahlStrom provided a very useful wireshark log of the Android app connecting. Basically, playing the encrypted stream in XBMC is possible, which is great. Game Pass provides an m3u8 file which contains all stream info and key info. Passing that m3u8 directly to XBMC/ffplay works wonderfully. The key acquisition and decryption of the stream is handled automatically. :-)

However, we do not yet know how to build this URL. I'm busy for a few days with real life stuff and I believe divingmule is as well, so I don't know how much progress will be made in the short term.

If you (or anyone else) is interested in taking a look at this, that'd be awesome. Just contact me via email and I can send you the logs.

If we can build these URLs, then we get live games, NFL Network, and (I think) Red Zone. It'll be a very nice set of features once it's figured out.

---Alex

aqw commented 11 years ago

Made some progress on this, but acquiring the key isn't working. Not quite sure why yet...

divingmule commented 11 years ago

I think this issue can now be closed :-)

aqw commented 11 years ago

Thanks for working on this! I still need to upgrade to Gotham to experience the full glory of Live games.

---Alex