[POC] Icefilms.info Plugin
#1
edit: shifted post to a release thread:
http://forum.xbmc.org/showthread.php?p=6...post665543

i will use this thread to post stuff about development problems etc.
Reply
#2
(i deleted this post)
Reply
#3
i totally support your move on built it. but can't be of much help too no clue with python..
Reply
#4
not much news. i had a crack at it today and managed to hook up a debugger, but didn't get much further than that. at this rate its going to take me months. if anyone is interested in writing it, pm me
Reply
#5
This will be a no help post, but I just want to throw my support at you. Great job so far!
Reply
#6
UPDATE: Hate to double post, but wanted to bump this up a bit...

Great News!
Megauplaod has removed the captchas and time limits (possibly daily dl limit, haven't checked)

Not sure how long this will last, but do you think we could get the proof of concept running in the mean time, or was the python for more than those limitations?
Reply
#7
cheers for the info, there is still a waiting time though which i have to work out how to implement. shouldnt be too difficult.

if you want to help, there are some great xbmc python plugin guides out there that teach you how to do stuff ... (thats what i did in September, having no previous knowledge of python or coding languages)
Reply
#8
update:
got a working proof of concept, streaming from megaup is working. its a very messy plugin but it works.
i'll release it as a version 0.1 as soon as i tidy a few loose ends.

this post is a legacy post of everything that used to be in the first post:

Download proof of concept here

i started work on this plugin but i stagnated. I might end up finishing it, but i might not, so i thought i'd upload my progress here, in case someone wants to pick up development.

Icefilms.info is a site with links to loads of .avi files uploaded to 3rd party filehosters Megaupload and 2Shared. The site provides a Firefox/Greasemonkey/DivXWebPlayer solution (which has some problems, but works), but i thought it would make for a great experience in XBMC.

The plugin is designed to scrape Icefilms.info
Its based on the Voinage plugin template.
(check out the XBMC wikipage How to make a plugin)
Its pretty unfinished, and very rough code, im no python genius. I put #'s in front of some code, just so its a working proof of concept. Movies and TV Shows scrape all the way up to mirrors. Music, Stand Up Comedy and Other do not scrape, but it would not be hard to make it scrape. The Icefilms site is fairly simple to scrape.

There have already been many requests for a plugin for Icefilms.info,
so it would be a worthwhile endeavor for someone with the python guts.
For example here are various requests: 1 2 3 4
you can see here, one of the founders of icefilms.info endorsing an xbmc plugin


The difficult albeit boring task lies in adding support for megaupload/2shared
I shied away from writing a python script to automate javascript actions, waiting times, captcha recognition etc, so i looked into external downloaders.
However, i do think it would be much better to have a plugin that works entirely withing Python, without any kind of external downloader for megaupload/2shared. Check the bottom of the post for a very good open source python megaupload captcha cracker that works in python 2.4

heres some options if someone does decide to go with external downloaders:
1. use JDownloader and its http remote control
This is easiest, because it can be commanded by opening a url
eg. add a new download is done by opening a url like this
http://localhost:10025/action/add/links/...com/asgasf
then once the file is downloading it can be opened by giving the XBMC plugin a filepath rather than a link.
plus jDownloader is completely cross platform, supports loads of filehosters and is regularly updated. however Java runtime is a complete resource hog, so having jDownloader running in the background for the Icefilms plugin to work would be annoying for slow machines

2. use something like Plowshare, which is written in bash (designed for terminal/console use. it supports less filehosters than jDownloader, but it does support megaupload and 2shared



heres some helpful stuff in case any1 wants to pick-up development:
Plugin writing guides:
- http://wiki.xbmc.org/?title=HOW-TO_write...s_for_XBMC
- http://trac.xbmc.org/ticket/10107

The original Greasemonkey script for Icefilms + Firefox + Greasemonkey and DivXWebPlayer

The downloaders Tucan and PyLoad might have some useful python source, and a really well coded megaupload python captcha cracker exists, which crucially works on Python 2.4
Reply
#9
Great work, been waitin on this for a long time. Is it possible to scrape the homepage and have a new release category? Seems to be the only thing missing from this plugin. Thanks for making my day!! Smile
Reply
#10
yeah its possible (and easy to add unlike other features)
i'll do a 0.2 release soon, with a few added things.

edit: i know how to create 2shared support, from examining 2shared pages and icequickstream.
problem is i dont know how to implement it in python.

update: 0.2 released
Reply
#11
You, sir, are a gentleman and a scholar. Can't believe this is finally happening, you would think there would be more support for this. anarchintosh, you're amazing!
Reply
#12
Lightbulb 
All apologies for being a newb; I hope this is a fair place to make this post. Wink

I saw a tweet re xbmc on the IceFilms.info site yesterday, so I installed xbmc, the IceFilms plugin, and JDownloader. When all these were updated they did not work together. With a little investigation I discovered the problem.

It's easy enough to make the fix yourselves while we wait for an official patch.

Issue
xbmc jdownloader plugin makes a JDownloader Remote Control HTTP POST that is no longer properly parsed by JDownloader. (I will describe in greater detail how I know this below.)

This is what xbmc jdownloader plugin sends:
127.0.0.1:10025/action/add/links/grabber0/start1/http://www.megaupload.com/?d=MRFT164Q&w=626&h=395

This is what my patch will send:
127.0.0.1:10025/action/add/links/grabber0/start1/http://www.megaupload.com/%3Fd=MRFT164Q&w=626&h=395

As you can see I have replaced '?' with the URL escape code '%3F'. When sending the origianl POST (http://127.0.0.1:10025/action/add/links/...=626&h=395) this is the repsonse:
Quote:Link(s) added. ("http://www.megaupload.com/"
"626"
"MRFT164Q"
"395"
)

When sending my patched POST (http://127.0.0.1:10025/action/add/links/...=626&h=395) we get the desired behavior from JDownloader, and this is the response:
Quote:Link(s) added. ("http://www.megaupload.com/%3Fd=MRFT164Q&w=626&h=395"
)

How to fix
Simply add one line to jdownloader.py in the action_addlink definition.

The jdownloader.py file on my Windows installation is here:
%AppData%\XBMC\addons\plugin.program.jdownloader\resources\lib
(C:\Users\<My Username>\AppData\Roaming\XBMC\addons\plugin.program.jdownloader\resources\lib)

Open this file in an editor and search for the function definition action_addlink (line 200). Add the line.

Before modification
Code:
# Links seperated by spaces, won't work, call this functions for each link seperatly
def action_addlink(link):
    # get settings
    grabber = Addon.getSetting("add_use_grabber")
    start = Addon.getSetting("add_start")
    # add link
    result = _http_query('/action/add/links/grabber' + str(grabber) + '/start' + str(start) + '/' + str(link))
    return result

After modification
Code:
# Links seperated by spaces, won't work, call this functions for each link seperatly
def action_addlink(link):
    # change '?'
    link = link.replace( '?', '%3F' )
    # get settings
    grabber = Addon.getSetting("add_use_grabber")
    start = Addon.getSetting("add_start")
    # add link
    result = _http_query('/action/add/links/grabber' + str(grabber) + '/start' + str(start) + '/' + str(link))
    return result

A couple further notes
I just also thought to add something about the process and behavior of the system. If you install xbmc and the IceFilms plugin and the jdownloader plugin I believe you get the latest versions. However, if you use the installer for JDownloader you get a fairly old version (It needed 941 patches.). Using this "clean install" of JDownloader you can add the link via the xbmc jdownloader plugin to JDownloader--but the link will not download. JDownloader unpatched has an error in the way it deals with the current version of MegaUpload so even though the HTTP remote control system adds the link properly, the link added doesn't actually work.

Now, when you update JDownloader (and why does it take so long?!) the behavior changes. The xbmc jdownloader plugin can no longer successfully send the link to JDownloader. With some investigation we can see that the patched JDownloader is coughing on parsing the query ('?') portion of the MegaUpload URL and breaking the URL into unworkable bits. (See the HTTP Responses I post above, or simply do the HTTP POST in a browser for your self.) If we escape the query indicator '?' into its code '%3F' then the JDownloader parser successfully adds a link--and most importantly, the patched JDownloader succeeds in downloading the flippin file! Wink

As I say I'm a n00b so I don't see quickly how to just add a link to this file for your convenience. Still, it's easy enough to make the change yourselves.

I will also go over and write up a bug report. Please feel free to tell me I've posted in the wrong place, etc. I hope I've provided sufficient info.

Cheers!
Reply
#13
Thanks for pointing out that problem. It will be fixed with the upcoming version 1.0.3 of plugin.progam.jdownloader
JDownloader Plugin - Handle JDownloader from within xbmc
RlsBB Plugin - Add links from rlsbb.com to JDownloader/pyLoad
Reply
#14
thanks pgoeri, problem is now fixed. icefilms is correctly sending links to jDownloader now.
Reply

Logout Mark Read Team Forum Stats Members Help
[POC] Icefilms.info Plugin0