[RELEASE] The Escapist (Video) Plugin

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
achilleas.k Offline
Junior Member
Posts: 19
Joined: May 2010
Reputation: 0
Post: #61
Doesn't seem to be doing well. Just 14 positive and an equal number of negative votes.
I don't think this is going to change anything.

What about the alternative mentioned earlier in the thread?

Floppie Wrote:Just heard back today. He explained to me how the Flash player (and the Boxee plugin) are retrieving ad info from the ad server. When I'm done work I'll do some packet sniffing to figure out if that will be feasible for me to do entirely in Pythonland - apparently the Boxee plugin is literally opening the page in a browser and expanding the Flash player to fullscreen. Needless to say that's lame and I'm not doing it that way if I can avoid it; I'm confident I can.

He did say that, if there's no easy way for me to handle it all in Pythonland, he'd put me in contact with the advertiser. There's a decent chance they'd be willing to put some code together to make this happen.
find quote
Stormwave Offline
Junior Member
Posts: 5
Joined: Sep 2011
Reputation: 2
Post: #62
I've got a slightly hacky fix for this plugin.

As has already been deduced, your IP address gets blocked from downloading the video config data from theescapist (even directly in a browser). However, I noticed that Plex has an Escapist plugin that works, so I had a look at how they had got around it, and figured it out. They basically use surf-proxy.de as a proxy to get the config file, which then points to an accessible URL for the videos.

I "ported" the Plex code over to the XBMC plugin and it seems to work fine. Although, I'm not sure how much I'd recommend this fix, since it needs a proxy to work (which I never like to do), but it does work so feel free to use it.

To fix the plugin:

Open default.py from the %appdata%/addons/plugin.video.escapistmagazine folder.

Replace the function PLAYVIDEO with the following:

Code:
def PLAYVIDEO(url, referer):
    page = retrieveUrl(url, referer)
    config_url = re.compile('<param name="flashvars" value="config=([A-Za-z:/.\-0-9%_]+)"/>').findall(page)[0]
    jsonURL = "http://surf-proxy.de/index.php?q="+urllib.unquote(str(config_url))
    f = urllib2.urlopen(jsonURL)
    jsonObj = f.read()
    f.close()
    videoURL = re.compile("'Video Splash'},{'url':'([A-Za-z:/.\-0-9%_]+)'").findall(jsonObj)[0]
    liz = xbmcgui.ListItem(name, path = videoURL)
    liz.setInfo(type = "Video", infoLabels = {"Title": name})
    liz.setProperty('isPlayable', 'true')
    xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, liz)
find quote
YodaEXE Offline
Fan
Posts: 453
Joined: May 2010
Reputation: 0
Post: #63
Stormwave Wrote:I've got a slightly hacky fix for this plugin.

As has already been deduced, your IP address gets blocked from downloading the video config data from theescapist (even directly in a browser). However, I noticed that Plex has an Escapist plugin that works, so I had a look at how they had got around it, and figured it out. They basically use surf-proxy.de as a proxy to get the config file, which then points to an accessible URL for the videos.

I "ported" the Plex code over to the XBMC plugin and it seems to work fine. Although, I'm not sure how much I'd recommend this fix, since it needs a proxy to work (which I never like to do), but it does work so feel free to use it.

To fix the plugin:

Open default.py from the %appdata%/addons/plugin.video.escapistmagazine folder.

Replace the function PLAYVIDEO with the following:

Code:
def PLAYVIDEO(url, referer):
    page = retrieveUrl(url, referer)
    config_url = re.compile('<param name="flashvars" value="config=([A-Za-z:/.\-0-9%_]+)"/>').findall(page)[0]
    jsonURL = "http://surf-proxy.de/index.php?q="+urllib.unquote(str(config_url))
    f = urllib2.urlopen(jsonURL)
    jsonObj = f.read()
    f.close()
    videoURL = re.compile("'Video Splash'},{'url':'([A-Za-z:/.\-0-9%_]+)'").findall(jsonObj)[0]
    liz = xbmcgui.ListItem(name, path = videoURL)
    liz.setInfo(type = "Video", infoLabels = {"Title": name})
    liz.setProperty('isPlayable', 'true')
    xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, liz)

I get an error when I try to actually play a video with this modified code. Browsing through lists and whatnot works fine, but the minute I try to play something it fails. Any idea why?
find quote
Stormwave Offline
Junior Member
Posts: 5
Joined: Sep 2011
Reputation: 2
Post: #64
Hmm, I'm not sure. Could be a few things (python is really picky about white-space). Try clicking on a video, wait for it to fail, then open the xbmc.log. Look at the last few lines for any hints, or copy and paste them here (only the lines timestamped since you clicked on the video).

Other than that, just make sure all your indentations for each line are the same (tabs and spaces are nt the same), as python will get upset.

If all else fails, I'll upload my default.py to make the fix easier to implement for now.
(This post was last modified: 2011-09-18 06:06 by Stormwave.)
find quote
YodaEXE Offline
Fan
Posts: 453
Joined: May 2010
Reputation: 0
Post: #65
Stormwave Wrote:Hmm, I'm not sure. Could be a few things (python is really picky about white-space). Try clicking on a video, wait for it to fail, then open the xbmc.log. Look at the last few lines for any hints, or copy and paste them here (only the lines timestamped since you clicked on the video).

Other than that, just make sure all your indentations for each line are the same (tabs and spaces are nt the same), as python will get upset.

If all else fails, I'll upload my default.py to make the fix easier to implement for now.

That appears to have been exactly it. The new code was spaced one space to the left of everything else. Man, I so much prefer other programming languages that don't get annoyed over how you indent. Thanks very much! Things are working perfectly now.
find quote
AssChin79 Offline
Senior Member
Posts: 103
Joined: Dec 2009
Reputation: 0
Post: #66
Stormwave Wrote:I've got a slightly hacky fix for this plugin.

To fix the plugin:

Open default.py from the %appdata%/addons/plugin.video.escapistmagazine folder.

Replace the function PLAYVIDEO with the following:

Code:
def PLAYVIDEO(url, referer):
    page = retrieveUrl(url, referer)
    config_url = re.compile('<param name="flashvars" value="config=([A-Za-z:/.\-0-9%_]+)"/>').findall(page)[0]
    jsonURL = "http://surf-proxy.de/index.php?q="+urllib.unquote(str(config_url))
    f = urllib2.urlopen(jsonURL)
    jsonObj = f.read()
    f.close()
    videoURL = re.compile("'Video Splash'},{'url':'([A-Za-z:/.\-0-9%_]+)'").findall(jsonObj)[0]
    liz = xbmcgui.ListItem(name, path = videoURL)
    liz.setInfo(type = "Video", infoLabels = {"Title": name})
    liz.setProperty('isPlayable', 'true')
    xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, liz)

Absolutely outstanding share Storm!
find quote
Floppie Offline
Junior Member
Posts: 38
Joined: Dec 2010
Reputation: 0
Post: #67
Nice work, and thanks for the fix Smile

I might include this in the official plugin, although I'm not sure how reliably we can expect it to work with the whole proxy thing. I'd really like to keep it fully white-hat and work with them to make something that's officially supported by both me and them, but if their support department doesn't want to play nice there isn't much I can do about it - I still want to watch my Internet shows.

Achilleas, to answer your question - I haven't tried contacting the advertisers directly yet, but it's on my to-do list.
find quote
cfg9000 Offline
Junior Member
Posts: 45
Joined: Aug 2011
Reputation: 0
Post: #68
Stormwave Wrote:Hmm, I'm not sure. Could be a few things (python is really picky about white-space). Try clicking on a video, wait for it to fail, then open the xbmc.log. Look at the last few lines for any hints, or copy and paste them here (only the lines timestamped since you clicked on the video).

Other than that, just make sure all your indentations for each line are the same (tabs and spaces are nt the same), as python will get upset.

If all else fails, I'll upload my default.py to make the fix easier to implement for now.

Could you? I can't get this to work, I think I'm just too stupid for Python. Mirrored everything to what you have and it fails.
find quote
Ireshine Offline
Junior Member
Posts: 4
Joined: Jul 2012
Reputation: 0
Post: #69
Got 1 weeks ban from The Escapist website for using this plugin. keeps playing the ad video.
find quote
StuartQF Offline
Junior Member
Posts: 9
Joined: Jan 2011
Reputation: 0
Post: #70
Since this plugin has stopped working I've decided not to watch the escapist anymore.

Up until it broke, I was considering their premium service.. it's just not convenient anymore, so I lost interest.
find quote
achilleas.k Offline
Junior Member
Posts: 19
Joined: May 2010
Reputation: 0
Post: #71
(2012-07-19 01:21)Ireshine Wrote:  Got 1 weeks ban from The Escapist website for using this plugin. keeps playing the ad video.

It's the reason the plugin is marked broken. Technically it works, but it gets you banned because the site doesn't like it.
find quote
wellspokenman Offline
Senior Member
Posts: 117
Joined: Jul 2012
Reputation: 1
Post: #72
tried Stormwave's new def, but zero punctuation isnt listed. Lot of other content, but no ZP.
find quote
Post Reply