Sickbeard with Integrated Torrent Client


Note: Since this post was written, TvTumbler was born. Going forward, all new development will be in TvTumbler.


Sickbeard Integrated Torrent ClientI’ve included a torrent client in my torrent-friendly fork of Sickbeard. The UI is a little limited at the moment, but it’s been wiping the floor with both Transmission and uTorrent here for the last few days in terms of download speed, so I think it’s ready to be set loose on the world.

To enable it, you’ll first need to install libtorrent rasterbar (version 0.16 or later), and its python bindings.

If you do not have an already-running copy of this fork, just follow the general installation instructions.

Otherwise:

For debian derivatives: (i.e. Ubuntu, mint, etc)
sudo apt-get install python-libtorrent

That could hardly be much simpler now could it?

For OSX:
You’ll need to do a little compiling I’m afraid.

This post includes all the required details.

For Windows: (yes, for once I haven’t forgotten about you!)
Go here, and download the .msi which matches your version of python (probably either py27 or py26).
Pick a recent version – the older ones won’t work with magnet links.

Another OS:?
If your OS doesn’t come with a packaged version of libtorrent rasterbar and its python bindings (and note that most will!), then you’ll probably need to build from source.
svn co https://libtorrent.svn.sourceforge.net/svnroot/libtorrent/trunk/ lt/
cd lt/
./autotool.sh
./configure --enable-python-binding
make
sudo make install
sudo ldconfig

Once you have installed the above, restart Sickbeard, go to Config -> Search Settings -> Torrent Method, and change it to “Integrated”.

Any OS-specific tweaks you wish to share? Please note them in the comments.

Notes:

  • Is libtorrent installed? What version do I have?
    python -c "import libtorrent as lt; print lt.version" will tell you very quickly. You should get a response like 0.16.9.0 – if you get an error, or a version less than 0.16, this is likely to be your issue.
  • All my torrents are stuck at “downloading_metadata”: for dht to work (and hence for metadata to be available), the torrent client needs at least one valid peer to exchange data with, but if all your downloads are trackerless magnets, it won’t have one. Try adding a torrent manually (using either a magnet link with trackers, or a link to a .torrent file). You can delete the added torrent as soon as metadata begins to download. [Note: This issue should be resolved with recent releases]
  • Having other Issues? Check out this post (and read through the comments) to see if someone else has addressed it.
  • Still having Issues? Check out the github issue tracker. Please search the existing issues before creating a new one, and include a debug log in any new issues! (you can censor it beforehand if you feel the need)
  • It looks like ubuntu 12.04 installs libtorrent 0.15.x by default, which is a little too outdated for use here. So, if you are a 12.04 user, you’ll either need to build from source, or find a ppa with a more recent version (please post any suggestions in the comments). Thanks go to Chris for pointing this out.Update (with thanks to Dennis): This repo appears to have all the needed packages.

, , ,

  1. #1 by Greg on May 9, 2013 - 11:26 pm

    Great release, thanks budd

  2. #2 by Akiosabt on May 16, 2013 - 5:59 pm

    Nice Update ! Will try it tonight.
    Just one question tho, does the torrent client auto-unzip the file if the episode is archived (for example, most ep on torrentleech are)

    Thanks for your work!

    • #3 by Dermot Buckley on May 16, 2013 - 6:07 pm

      Not that I’m aware of, no. It performs standard sickbeard post-processing on the download once it’s complete, nothing special.

      None of the built-in providers should give you rar/zip files, but of course if you add a custom one which might, then you’re probably better off to use blackhole processing.

      Edit: LOL! Just realised that torrentleech is actually a builtin! I guess we inherited that from the original sickbeard while I wasn’t looking. In that case, if it does generally give you zip/rar files, it’s definitely better not to use the builtin client.
      (I’d be inclined to say that the better option is simply not to use that tracker though – the open trackers give very good results in my experience)

  3. #4 by j on May 21, 2013 - 8:19 am

    Hi.

    Nice fork.

    can you merge your fork with subliminal.

    • #5 by Bricky on May 21, 2013 - 2:55 pm

      @J: patches (provided they work) are welcome.

  4. #6 by j on May 21, 2013 - 5:47 pm

    hi.

    how can i merge your fork with one that already as subliminal.

    • #7 by Bricky on May 21, 2013 - 6:44 pm

      @J: that’s my point really – you’d likely need to code it. If you put something working together create a pull request on github and we can discuss merging it.

      Thanks

  5. #8 by j0539h on May 23, 2013 - 1:27 pm

    Testing on my Windows machine, works well so far.
    I will try it out on Ubuntu and my Raspberry Pi.

    Is there any info you can give me to get this to appear in Marachino?

  6. #9 by Bricky on May 23, 2013 - 8:34 pm

    I don’t even know what Marachino is Joseph. Sorry :(
    Glad it works on windows though.

  7. #10 by ck on May 27, 2013 - 5:12 pm

    Great idea! Just trying this fork, on Ubuntu 12.04.2 LTS 64bit.

    Installed python-libtorrent via apt-get, but getting this error when searching:
    2013-05-27 21:08:15.725184 SEARCHQUEUE-MANUAL-SEARCH :: Error trying to download via libtorrent: Python argument types in
    torrent_handle.status(torrent_handle, int)
    did not match C++ signature:
    status(libtorrent::torrent_handle {lvalue})

    Any idea what’s wrong?

    Thanks,
    Chris.

    • #11 by Bricky on May 27, 2013 - 5:44 pm

      Hey Chris,

      The next few lines after that error message would have a whole bunch of more info – could you copy them if you still have the log?
      (they’re at debug level, so won’t show unless you select debug in the dropdown)

      Sounds like a version problem between the python bindings you have for libtorrent, and libtorrent itself.
      (Maybe you also tried to compile libtorrent manually?)

      • #12 by Bricky on May 27, 2013 - 6:25 pm

        Scratch that, it actually looks like your version of libtorrent is just too old. The flags parameter to status() was added in 0.16, so I guess yours is 0.15.

        This likely isn’t the only problem you’d have, so I think the best approach would be to use a newer version of libtorrent.
        Could you try that?

      • #13 by ck on May 27, 2013 - 6:47 pm

        I can’t reply to the comment beneath this but I think you’re right – Ubuntu 12.04 has libtorrent 0.15. I couldn’t find a good ppa repo for 0.16, so compiling it from source now.

        Thanks for the pointer, will hopefully fix this issue!

  8. #14 by Jerry on June 6, 2013 - 9:05 pm

    Hi – I seem to be getting the same error message as Chris – some downloads work, some return:

    Jun-06 04:53:49 DEBUG SEARCHQUEUE-RSS-SEARCH :: torrent_hash: 9CC8CF46AF0FE49A9A7C193D53D79DEB0119D51D
    Jun-06 04:53:49 DEBUG SEARCHQUEUE-RSS-SEARCH :: Adding torrent to session: magnet:?xt=urn:btih:9CC8CF46AF0FE49A9A7C193D53D79D
    EB0119D51D&dn=The.Colbert.Report.2013.06.05.Jonathan.Alter.HDTV.x264-EVOLVE.%5BV
    Jun-06 04:53:49 ERROR SEARCHQUEUE-RSS-SEARCH :: Error trying to download via libtorrent: No registered converter was able to
    produce a C++ rvalue of type std::string from this Python object of type unicode
    Jun-06 04:53:49 DEBUG SEARCHQUEUE-RSS-SEARCH :: Traceback (most recent call last):
    File “/home/jschuryk/sickbeard/sickbeard/downloader.py”, line 131, in download_from_torrent
    h = sess.add_torrent(atp)
    TypeError: No registered converter was able to produce a C++ rvalue of type std::string from this Python object of type unicode

    I’m sure I am using libtorrent version 16.3 downloaded via the apt get as above.

    Any ideas?

    Thanks,

    Jerry

    • #15 by Bricky on June 7, 2013 - 3:55 am

      Hi Jerry,

      It looks like you’re running into a different issue here. There’s a character at the end of that magnet link that’s giving python some trouble.

      Which RSS feed is it from (scroll back a bit in the log and you’ll see)? And what OS are you using?

      Also, if you have a github account, it might be worth opening a ticket about this (here)

      Thanks

      • #16 by Jerry on June 8, 2013 - 2:41 am

        mint linux

        >uname -a
        >Linux minty 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:32:08 UTC 2012 i686 i686 i686 GNU/Linux

        however I don’t have any of those messages in the past 4 log files – since about 3am yesterday morning.

        I was 3 commits behind and upgraded. not sure if the feed was fixed, you fixed something, or I’m just not finding anything from that feed at the moment.

        I’ll post again if I see the error pop up again.

      • #17 by Bricky on June 8, 2013 - 5:50 am

        Thanks Jerry,

        Unfortunately there haven’t been any updates which would fix this issue (I think), so we’ll likely be hearing from it again.

        Let me know if you have any updates anyway.

  9. #18 by Rob on June 12, 2013 - 6:48 pm

    Hi, I seem to be having the same issue with an outdated version of libtorrent, I am running on a raspberry pi with raspbmc and the last version is 15.10, any idea how I can get a newer version on it ?

  10. #19 by BobbyB on June 12, 2013 - 10:25 pm

    Quick question and I know it is user error. I use windows and python, sickbeard, and everything is somewhat familiar to me. I installed liptorrent following your walkthrough above but when I go to torrent method in sickbeard I still dont have the “integrated” option. Any help would be greatly appreciated :) Other than my noob mistake I cant wait to get this running properly with your fork. Sickbeard (well the indexers) aren’t as good as they used to be and a little torrent support is a very very nice feature :)

  11. #20 by Bricky on June 13, 2013 - 12:37 am

    @rob: a quick google turned up this,
    https://launchpad.net/~surfernsk/+archive/internet-software
    Looks promising to me. Failing that you could just compile it, it’s not nearly as daunting as you might think.

    (But note that if you’re running this off an SD card, you might have performance issues)

    @bobbyb: did you try python -c "import libtorrent as lt; print lt.version", what did it tell you?
    And have a look at the first few lines of sickbeard.log.

  12. #21 by Purgid on June 17, 2013 - 7:42 pm

    Hey Bricky,

    I’m seriously digging your fork – the Custom RSS ability is pretty fantastic.

    Question for you: With mr_orange stepping out of the game, have you considered taking over his fork? Seems like between your CustomRSS and his separate torrent client integration, you would be able to create an unstoppable juggernaut!

    Cheers

    • #22 by Bricky on June 17, 2013 - 8:26 pm

      What’s the situation with mr_orange? Is he abandoning his fork? It’s a shame if that’s the case. :( His gui is excellent – it’d be the one thing I’d steal if I could :)

      Regarding taking it over: I doubt it, and indeed I doubt anyone else would or will. sb is very difficult to maintain at this point, it needs a rewrite from scratch, not another maintainer.

      I *do* keep this version up to date, but really only to suit my own needs. If at any point I get a few free days to spend on this, I’ll start from scratch and shelve what I have here.

      • #23 by D Zero Vibe on July 20, 2013 - 9:38 am

        Bricky, mr_orange isn’t one of the main SB devs, is he? AFAIK he just forked SB, but was never part of the core team. I don’t think him leaving affects the core SB development, so you wouldn’t need to take over maintaining the core, just his fork. I think it would be a great idea if you could take over and/or integrate his TPB fork into yours.

        On a side note, I agree that the SB core could do with a rewrite :) I would love to see it rewritten with a focus on torrents. If you ever get around to trying the rewrite, I would even be glad to help out if I have time.

      • #24 by Bricky on July 20, 2013 - 12:45 pm

        There’s no “core team” that I’m aware of – I believe that midgetspy is the only person who commits to his version (which is what I assume you mean by “core”). His version is stagnating now though – there’s been very little done to it in the last year or so, which is why, I think, most people run a fork, such as this one.

        mr_orange’s fork has a *lot* of improvements. A much nicer gui, extra providers, and some kind of integration with common torrent clients. But those improvements have come at a cost – it’s very susceptible to breakage in lots of places that midgetspy’s version (or indeed this fork) wouldn’t be. And it’s lost compatibility with python 2.5.

        So I’m not really interested in maintaining it. The only piece that really interests me is the gui, and I wouldn’t pull that as-is.

        I still plan to write a replacement (torrent & video-on-demand only), but with the free time I have, it’ll be months before it gets to any kind of useful state.

      • #25 by D Zero Vibe on July 20, 2013 - 1:28 pm

        Ok, I get you now :)

  13. #26 by Purgid on June 18, 2013 - 9:39 am

    Yeah, he announced just a few days ago over on SB forums that’s he’s packing it in. I can see him still pushing commits out to the Pistachitos Dev fork, so I expect the real answer is he’s got a version that works as well as he cares for it to, so he’s done with the spotlight. Hell, if I had BTN access I’d probably consider it ‘good enough’ too, but I still need to earn an invite.

    That’s why I’m trying to use your fork now bricky – seemed like every other issue req was related to a new torrent provider, and your Custom RSS pretty fairly solves that (I’m using for TorrentShack RSS, which works a-ok, but was impossible on his fork).

    If you ever do build in the direct link with uTorrent, that would be sweet. For now, the black hole is a perfectly acceptable working method :-)

  14. #27 by Dennis on June 19, 2013 - 9:19 am

    LOVING this fork! Thanks, Bricky!!

    I’m Using Ubuntu 12.4 and I had the same libtorrent issue. Here’s a repo for 0.16.7 that works for me: http://packages.ubuntu.com/raring/i386/python-libtorrent-dbg/download

    • #28 by Bricky on June 19, 2013 - 9:36 am

      Thanks for the info Dennis!
      Will put your link in the post above :)

  15. #29 by Nick on August 22, 2013 - 5:01 am

    Hi dude, thanks for your great fork. I was wondering whether you could incorporate EchleonFour’s Trakt watchlist into your release? You can see it here: https://github.com/midgetspy/Sick-Beard/pull/401

    It allows you to add a tv series to your watchlist (say on your phone) and then adds it to your sickbeard and can then automatically download.
    Cheers
    Nick

    • #30 by Bricky on August 22, 2013 - 5:05 am

      Hi Nick,
      Not something I’d use myself, so I wont be doing it.
      Happy to pull it though if someone else would do the work :)

  16. #31 by Nick on August 23, 2013 - 8:18 am

    Thanks! Will see if I can sort it out although I have absolutely no clue what I’m doing

    • #32 by Nick on August 23, 2013 - 8:27 am

      Just to check, I assume you can’t pull from this and more work would need to be done? https://github.com/EchelonFour/Sick-Beard/commit/caea3aeee0ce4980307636b8ca5408ad00a8f76a

      (I really don’t have a clue….)

      • #33 by Bricky on August 23, 2013 - 9:31 am

        Hi Nick,

        Best approach is to fork my repo, find the version of that commit that you trust the most, pull it, fix it, test it, fix it, test it, fix it etc., until there’s no more fixing to be done. Rebase off master, then create a pull request and we can discuss merging it.

        Be sure to test it on python 2.5 also (lots of sb forks, and possibly the one above, have lost 2.5 compatibility).

        And keep to just this feature in your pull request.

        I you haven’t done anything like this before, you’ve quite a bit of work ahead of you.

  17. #34 by Rich on September 4, 2013 - 2:02 am

    There seems to be a bug with the configuration settings of this fork. Setting max speeds in Search Settings doesn’t limit the speed of the integrated torrent client. Is there a way to slow it down so automatic downloads don’t affect Netflix and online gaming?

  18. #36 by Phil on October 10, 2013 - 10:35 pm

    For those looking to run this using the integrated torrent client on a Raspberry Pi on Raspbian, libtorrent-rasterbar is version 0.15 in the repository and I couldn’t get a later version to compile on Raspbian.

    But a lazy workaround is to install Arch Linux for Arm, Arch uses the 0.16 libtorrent-rasterbar lib in its’ repository and personally I find Arch Linux for Arm much more responsive and stable on the Pi than Raspbian anyway.

  19. #37 by Richard on October 15, 2013 - 2:01 pm

    Firstly, thanks for an amazing update.

    Sadly over here ezrss is blocked so I edited ezrss.py around line 49 to state:

    self.url = ‘https://www.ezrss-proxy.net/’

    However I get the following error in the logs:

    ERROR::SEARCHQUEUE-MANUAL-SEARCH :: No data returned from https://www.e
    zrss-proxy.net/search/index.php?season=6&show_name=Dexter&episode=1&mode=rss

    Going to the URL in a browser works just fine (albeit with a certificate error) so I was wondering if you had any ideas on what the problem could be?

    Thanks for your help in advance!

    • #38 by Bricky on October 15, 2013 - 3:30 pm

      Hi Richard,
      Could you open a ticket on GitHub and include a *debug* log?
      (There are instructions there how to get one)

      Thanks.

      • #39 by Richard on October 15, 2013 - 5:15 pm

        Sure, no problem and will do. To be honest, the only reason I didn’t do that was because I had modified your code – so it’s technically a bug with my modification :)

      • #40 by Bricky on October 16, 2013 - 5:41 am

        You were right really, but I think this is something that would be of interest to lots of people, and the github pages are much more visible than the comments here :)

  20. #41 by Gav on November 27, 2013 - 4:12 am

    For some reason I get in the integrated torrent client, torrents with the name null and downloading_metadata. This normally happens when I reboot my server but not always.

    How can I prevent this from happening?

  21. #42 by James Morgan on January 26, 2014 - 9:46 pm

    Hey man, thanks for the fork! Just wondering what version of linux you are using?

    I tried Ubuntu Server but for some reason it can’t snatch any episodes :(

  22. #43 by mediaklan on March 4, 2014 - 3:31 pm

    Thanks Bricky for your fork, it’s actually making sickbeard useable, at least for me with Fedora 20. Too bad you stopped development for it and switch to xbmc (which i can’t use, it’s like a heavyweight gaz tank on my poor server). Anyway, thanks again !

  23. #44 by Johnny on April 14, 2014 - 6:19 pm

    For some reason the Torrent Method only says blackhole and i want to set the method as utorrent. everything works great other than me getting stuck at snatched.

    here is the screenshot: http://i.imgur.com/ma9acsr.jpg

  24. #45 by sfmike on October 16, 2014 - 1:09 am

    is this fork being updated anymore?

    • #46 by Bricky on October 16, 2014 - 2:01 am

      ‘fraid not. I shelved it in favour of tvtumbler (which I still use personally, but no longer maintain either).
      Sickbeard probably doesn’t have much of a future now – I know there were some people working on fixing it up (iirc they were calling their version sickrage). No idea what became of that, but it was about the most promising version I’m aware of.

  25. #47 by Zit on October 26, 2014 - 1:35 pm

    How can we install more providers?

  26. #48 by Carlo on February 10, 2015 - 6:54 am

    Hi,
    it seems I cannot get your fork.
    any links to https://github.com/bricky/Sick-Beard goes to 404 page

    what is wrong ?

    • #49 by Bricky on February 10, 2015 - 11:00 am

      Hi Carlo,

      I stopped maintaing this fork a long time ago, and finally deleted it in December.

      I don’t retain a copy of the code any longer.

      Apologies.

(will not be published)


css.php