• 1
  • 2
  • 3
  • 4(current)
  • 5
  • 6
  • 8
[VBS/Pitchfork/Crunchyroll] maruchan addons repository
#46
So bluecop compiled a new version of the rtmp library that does in fact support handshake 9. I placed it in the right place on my atv2 and am, unfortunately, not having any luck playing crunchyroll with it. Same error as before unfortunately. I am not seeing anything related to handshake 9 errors though, is there a way to turn on additional logging for the addon?


14:35:16 T:119394304 M:112070656 INFO: Scriptresult: Success
14:35:16 T:119394304 M:112070656 INFO: Python script stopped
14:35:16 T:119394304 M:112070656 DEBUG: Thread Python Thread 119394304 terminating
14:35:16 T:109236224 M:112070656 DEBUG: waiting for python thread 12 to stop
14:35:16 T:109236224 M:112087040 DEBUG: python thread 12 destructed
14:35:16 T:119926784 M:112087040 DEBUG: WaitOnScriptResult - plugin exited prematurely - terminating
14:35:16 T:109236224 M:112087040 ERROR: GetDirectory - Error getting plugin://plugin.video.crunchyroll/?url=None&mode=episode&name=A+Maiden+Teleported&id=573554&resolutions=12&page_url=http%3A%2F%2Fwww.crunchyroll.com%2Fbattle-girls-time-paradox%2Fepisode-1-a-maiden-teleported-573554&icon=http%3A%2F%2Fimg2.lln.crunchyroll.com%2Fi%2Fspire4-tmb%2F8f5e9fa69a77b5025bd5aef9870cabc91301957656_large.jpg&plot=The+Present+Day.+There%27s+a+middle+school+girl+named+Hideyoshino+who+loves+fashion+and+cell+phones.+Her+nickname+at+school+is+%22Hideyoshi.%22+Just+before+her+exams%2C+she+realizes+that+her+only+hope+is+divine+intervention%2C+and+goes+to+a+shrine.+There+she+is+whisked+away+by+a+mysterious+light...The+next+thing+she+knows%2C+she+is+surrounded+by+female+bandits+who+proceed+to+attack+her%21++She+is+saved+by+a+general+with+a+gigantic+sword.+The+general+calls+herself+Oda+Nobunaga...
Reply
#47
That is good news!

Is there a download location for the updated library? Or is it impossible to replace a part of XBMC when using Ubuntu (with the package manager and all that).
Reply
#48
I can't say for ubuntu for sure but I would imagine so. The source is available via git for rtmp and I am sure you could compile it without issue.

In atv2land there is a dynamic library that is loaded/unloaded at will as part of how xbmc works. Simple enough to put in as a direct replacement and reboot to ensure it is using the new file.
Reply
#49
Update: with a replacement librtmp from git (I've installed the 2.4 branch using the 2.3 build scripts) works like a charm.

Instructions for those with experience:
- Get the source from http://rtmpdump.mplayerhq.hu/ which tells you to use git for "git clone git://git.ffmpeg.org/rtmpdump"
- Use "apt-get build-dep librtmp0" to install build dependencies
- Fetch the sources for 2.3 with "apt-get source rtmpdump"
- Copy the sources from the git folder to the debian source folder - make sure you keep the directory structure
- Use the debian build system like in this thread: http://code.google.com/p/bluecop-xbmc-re...?id=28#c30
- Comment out the 2 patches as described in the linked thread: no 2 is no longer needed and number 3 is a clean-up patch which no longer works
- Use 'debuild' as described and install the appropriate *.deb packages
- Restart XBMC

For future reference for everyone running Windows: the DLL can be found here: http://stream-recorder.com/forum/showpos...stcount=17
Reply
#50
Hmm, so now the question is why does ATV2 crunchyroll attempt fail? The error looks like it isn't able to work at a different point than the handshake issue.

I am able to play the trailers that do not have subtitles.

In that case the log looks like:
14:22:39 T:805146624 M:114905088 NOTICE: CRUNCHYROLL: --> App - a3439/e13/
14:22:39 T:805146624 M:114905088 NOTICE: CRUNCHYROLL: --> Attempting to find subtitles...
14:22:39 T:805146624 M:114905088 NOTICE: CRUNCHYROLL: --> No subtitles available!
14:22:39 T:109236224 M:114880512 DEBUG: CPlayerCoreFactory::GetPlayers(rtmpe://crunchy.fcod.llnwd.net/a3439/e13/mp4Confused/ve695740/video.mp4?s=1311013338&e=1311027
738&h=f3597201c2d43f1aaaa2d3c9650416d9 swfurl=http://static.lln.crunchyroll.com/flash/20110711145109.f6bf7f75b86a64e089e1d98f9c222f89/ChromelessPlayerApp.swf?con
fig_url=http%3A%2F%2Fwww.crunchyroll.com%2Fxml%2F%3Freq%3DRpcApiVideoPlayer_GetChromelessConfig%26aff%3Daf-91360-abhf&use_explicit_config=1 swfvfy=1 token=gQ/ROo3vxI+/x18Fs10qrVzqc1M= playpath=mp4Confused/ve695740/video.mp4?s=1311013338&e=1311027738&h=f3597201c2d43f1aaaa2d3c9650416d9 pageurl=http://www.crunchyroll.com/a-dark-rabbit-has-seven-lives/-a-dark-rabbit-has-seven-lives-official-preview-580796)

Further on it starts talking about loading the rtmp library, but when there are subtitles it never gets that far and has an error with GetDirectory. There are also a bunch of warnings about using the wrong call to get the directory a few lines earlier, so I have a feeling there is something broken in python or how the device does something.


Here is the pastebin link for a failed attempt.
Debug logging is enabled, verified I can watch this video through the web on my laptop (after commercial). This is the entire log from the point I opened the crunchyroll plugin, moved into the anime folders and selected an anime to play. After hitting play it successfully downloaded and decrypted (as per its messages) the subtitles then eventually failed.

On screen I just see "crunchyroll - 100% Loading Directory - Retrieved 0 items" in a window, that eventually just disappears.

http://pastebin.com/bpwcmVc3
Reply
#51
Question 
The plugin downloads the subs from CR, converts them and stores the result during playback on the hard drive (they are erased when playback stops).

Perhaps the ATV2 is not allowing write access to the location where the plugin expects to save the subtitles?

I am not familiar with the ATV2 but if XBMC is executed on top of a unix system, you might examine the directory structure and the permissions therein to see if the entire XBMC profile is writable.

On a side note: premium content is still broken - I will investigate this later on as I said before.
Reply
#52
True, but it is running as a user that should have permission to everything. I'm not terribly familiar with python though, so I am not sure how to start poking around to see what files are generated where. I would have assumed in the cache directory and that seems to be good to go. It is generating other files there.
Reply
#53
I pushed a quick update that seems to fix the basic Crunchyroll functionality for me. It only plays the lowest quality version of the streams, but it does seem to work on OSX and Windows 7. Those are the only systems I use, so no idea about ATV/Linux. Obviously, it requires the updated libRTMP.
Reply
#54
maruchan Wrote:I pushed a quick update that seems to fix the basic Crunchyroll functionality for me. It only plays the lowest quality version of the streams, but it does seem to work on OSX and Windows 7. Those are the only systems I use, so no idea about ATV/Linux. Obviously, it requires the updated libRTMP.

I've been working on 2 issues:
Minor: show show name in listings so the recently added listing becomes useful instead of matching pictures Smile

Major: high def content for premium members. I got it working for pretty much everything, except that shows like Naruto and Bleach will not list because of a unicode error - I'm hoping that was fixed in the update Smile Edit: Yes it was fixed - yay!

Update: I do not have diff on Windows and my compare tool does not seem to generate standard diff files so here is the output of whatever I have.

Patch 1: Fix resolutions for premium members
Description: The Boxee feed is used to determine the available resolutions and it is reporting SD content for most episodes on CR while everything has at least a 480p version. So for now, simply overrule the reported resolutions so the user can set his/her preference. The server seems to have a fallback which returns a lower resolution if the requested one is not available.

Code:
[ 1 ]  C:\Users\Cyberwizzard\AppData\Roaming\XBMC\addons\plugin.video.crunchyroll\resources\lib\crunchy_video.py
=======
82    *           #res_avail = resolutions.split(',')
      *           res_avail = resolutions.split(',')
83    <!          # As long as the Boxee feed incorrectly reports most media as being SD only, overrule the provided
84    <!          # resolution info: the server will stream the requested resolution or the next best thing.
85    <!          res_avail = [12, 20, 21]
=======

=======
113    *           playlist = "http://www.crunchyroll.com/xml/?req=RpcApiVideoPlayer_GetStandardConfig&media_id="+vid_id+"&video_format=102&video_quality="+stream['resolution']+"&auto_play=1&show_pop_out_controls=1&pop_out_disable_message=Only+All-Access+Members+and+Anime+Members+can+pop+out+this"
       *           playlist = "http://www.crunchyroll.com/xml/?req=RpcApiVideoPlayer_GetStandardConfig&media_id="+vid_id+"&video_format=102&video_quality=10&auto_play=1&show_pop_out_controls=1&pop_out_disable_message=Only+All-Access+Members+and+Anime+Members+can+pop+out+this"
=======

Patch 2: Add the series name in the episode listing. This helps the usability of the "Recently Added" section and also in the listings themselves. If you do not like it being on by default, it might be an idea to make it an option in the add-on.
Code:
[ 1 ]  C:\Users\Cyberwizzard\AppData\Roaming\XBMC\addons\plugin.video.crunchyroll\resources\lib\crunchy_scraper.py
[ 2 ]  C:\Users\Cyberwizzard\AppData\Roaming\XBMC\addons\plugin.video.crunchyroll\resources\lib\crunchy_scraper - Copy.py
=======
78    *              crunchy_main.UI().addItem({'Title':item['series_name']+' - '+item['name'], 'mode':'episode', 'Thumb':item['img'], 'id':item['ep_id'], 'page_url':item['page_url'], 'plot':item['description'], 'resolutions':item['resolutions']}, True, num_episodes)
      *              crunchy_main.UI().addItem({'Title':item['name'], 'mode':'episode', 'Thumb':item['img'], 'id':item['ep_id'], 'page_url':item['page_url'], 'plot':item['description'], 'resolutions':item['resolutions']}, True, num_episodes)
=======
Reply
#55
Cyber: I also have a fix for atv2 users. You were bang on in your first impression.

It seems that when the subtitle routine tries to write to special://temp it fails without giving any real information why. My guess is that it might be something where the original atv had a different directory (wiki states /Users/frontrow/.xbmc) which does not exist for the atv2.

I just hardcoded it to a directory I created in the python script and chown'd the directory to user mobile for testing. There is probably another easier solve, or this might just be a bug in the atv2 xbmc build but I was in QFE mode.

From: xbmc.Player().setSubtitles('special://temp/crunchy_'+mediaid+'.ass')
To: xbmc.Player().setSubtitles('/User/temp/crunchy_'+mediaid+'.ass')

There are a few references of this in crunchy_video.py which need to be changed.

Takes forever to start, but it works very well now. Might give your updates a shot as well later once I start my 2 week trial.
Reply
#56
Just committed another update (2.2.1) featuring cyberwizzard's patches.
Reply
#57
maruchan, any chance you could also update the subtitle open routine?

In reference:
http://forum.xbmc.org/showthread.php?p=8...post843098

The open('special://temp....) command doesn't seem to work on the ATV2 and amet suggested a replacement of using

subfile = open(xbmc.translatePath('special://temp/crunchy_'+mediaid+'.ass'), 'w')

Looking at it, I can't think of a reason why this wouldn't work on all platforms. If anyone else wants to give it a shot to verify, that would be very appreciated.
Reply
#58
it will work, and is in fact required on all platforms in master. we don't inject the vfs any longer, so paths have to be translated.
Reply
#59
OK, I replaced the direct paths with xbmc.translatePath in version 2.2.2. Let me know if that fixes things.
Reply
#60
Do you have to have a prem crunchyroll account to use this? Cause I can't get the video's to work. Instead of "loading stream" it loads directory, and then does nothing.
Reply
  • 1
  • 2
  • 3
  • 4(current)
  • 5
  • 6
  • 8

Logout Mark Read Team Forum Stats Members Help
[VBS/Pitchfork/Crunchyroll] maruchan addons repository1