Perl script that automatically searches for new episodes of your favorite TV shows and downloads the corresponding NZB files from various *free* sources on the internets.
Be the first to post a text review of nzbivo. Rate and review a project by clicking thumbs up or thumbs down in the right column.
I have updated the SVN release, which in and of itself isn't news, but I think we're getting closer to a proper release. A few things to note: * I have added an option to manageshows.pl (-s) to allow you to import an existing .shows file. It *should* pull in your shows, qualities and templates, but please be sure to check the DB manually to make sure everything imported correctly. * There have been some schema changes (sorry!). Due to limitations in sqlite (no alter column allowed) we cannot just update the schema so you'll need to reinit your DB. The good news is that it never hurts to reinitialize, and now with being able to import a .shows file hopefully this will be less painful. I am trying to anticipate any data we could want to use and get it into the schema now, so that we won't have to mess about with this stuff once we've made the release. For anyone who is interested, you can get the latest head here: https://nzbivo.svn.sourceforge.net/svnroot/nzbivo/ The rev notes and code changes for this rev is here: http://nzbivo.svn.sourceforge.net/viewvc/nzbivo?view=rev&revision=31 Completely off topic (and on my soapbox), here is to Liverpool overtaking Man U in the Premiere League... C. Ronaldo can suck it :-)
OK, so I took some time to stop and think about what I was doing, and I decided that the OO path I took with NG of nzbivo was dumb. So, I have rewritten it. The main thing we're sporting this time, which is frikkin slick, is sqlite3 DB support. This allows us to offload a lot of the logic to the DB via simple SQL queries. You may have to add some new modules (such as DBI and DBD::SQlite, and Maybe LWP::UserAgent::WithCache), but I think it's worth it. A few other notes, since everything is done via the DB, you have to get shows in there to start with. I have included a basic script for adding and removing shows from the DB named (cleverly enough) "manageshows.pl". Usage is pretty easy, the first time you run it, it'll initialize the DB for you. You just do manageshows.pl -a "name of show" to add a show, -d to delete, etc. You can also use -q to add the quality attribute to the show, and you add templates with -t. The templates need to be a comma separated list. So essentially, each <Search> item you had in your .shows file previously. This is still pretty rough around the edges. It currently doesn't do very much TZ logic, so there will be some issues there. Also, if you want to make changes to a show once it's been added to the DB, you either have to remove and readd it, or edit it by hand with the sqlite client. I think thats about it, it's in subversion as revision 19, so if you're feeling lucky, go wild.
Hey everyone, So while it is not done by any means, I think nzbivo-ng is finally ready for some testing. I should start by saying, if you love TV like I do, you probably should not completely replace whatever your current method of obtaining it is, however I have been using this new version for a day or so now, and it seems to be working well. A few caveats and some general information. First of all, there are some new PM's required. I have not taken a complete inventory and they fluctuate day to day, so I don't recall exactly which ones. I tried to reuse as many as I could from the original nzbivo, but obviously I didn't completely succeed :-D I'd say run it, and add them as necessary. I don't imagine I'll be adding any more now that we're mostly done, so it can't hurt to add them anyway. Secondly, while your old .shows file should work, we no longer track season/episode there, so you can remove those fields. Third, the <Name> tage needs to appear exactly as tvrage shows it. For instance: This would work: <Show> <Name>Terminator: The Sarah Connor Chronicles</Name> </Show> This would not: <Show> <Name>Terminator The Sarah Connor Chronicles</Name> </Show> And (I think) finally, because of the way the show schedule is created, if you add a show (or more correctly the entry for the show in the .nzbivo.sched file gets created) on the day the show airs, there is a good chance that it won't grab that days episode. I'm working on ways around these, but they're low priority at the moment. I don't have any logging enabled yet, which includes debugging... well other than some commented out print statements, so if it isn't doing what you expect, you'll have to dig into the code if you're interested in seeing why. Another fun place to check is the .nzbivo.sched file that gets created in the directory you're running it from. Which reminds me, I'd be careful to only run it manually at this point, and from the directory (like so ./nzbivo.pl). I have no put in any logic to force it to place the .sched file in any particular place. The .sched file is standard YAML output, so it should be quite readable. If it grabs a show wrong, you can make it look for it again by removing the date from the "downloaded" element for the episode it grabbed wrong. Be careful with this though, if it grabbed it wrong once, it will likely do it again, and I have noticed that tvbinz.net has started complaining when I grab the same file too many times (sorry tvbinz admins!). I think thats about it... please leave a message in the forum to let me know what you think, any problems you encounter, or if you just want to tell me I suck because my algorithms are all O(x^2). Happy TVing!
Hey everyone, So things came together a lot more quickly than I had expected, and I now have a working, bare bones version of NZBivo NG commited to subversion. For those interested, the files can be found here: https://nzbivo.svn.sourceforge.net/svnroot/nzbivo/ It should work with your existing .shows file, but please please please remember that this very much alpha code. It is still full of debugging output, and currently only checks on source (tvbinz.com). There is still a fair bit of work to be done, but I wanted to give anyone who was interested a crack at it. Please feel free to file bugs or whatever in the issue tracker, I'm trying to do a better job of checking that now :-) Outside of that, please let me know what you think, and if you're interested in helping develop, let me know, I'm always down for anything that increases my net slack :-D
Hey everyone, I am sorry it has been a long time since any updates. I have a new daughter, so my spare time is severely limited :-D However, with that being said, I have spent the last few days in a coding frenzy working on a completely re-written version of NZBivo. We have switched to an OO model, and made quite a few changes to the general way the program works. A few of the major new features are: A built in scheduler. We no longer rely on the quickinfo return from tvrage to determine the next showing. We now grab their weekly schedule RSS feed and build out a schedule based on that. This fixes a few fundamental flaws, such as, not being able to grab multiple new episodes of the same show airing on the same day. Additionally because we use this feed, we now implement caching. This means you spend less time pounding tvrage and more time watching your favorite TV shows. Ultimately the plan is for it to work completely offline unless either 1) The cache has expired, or 2) A new episode has aired and we need to search our sources for it. Lastly, I have decied to let the domain nzbivo.info lapse. It doesn't get a lot of traffic, I don't want to update two places anymore, and I'm cheap, so I don't want to pay for it again. I think it expires in April, so be warned, past then, it will be no more. I don't have a timeline for the NG release, but development is coming along nicely, so hopefully it will be in a couple of weeks at most... assuming I don't get swamped by work :-D
Hey gang, I finally got off my lazy bum and pushed out a new version. It has a couple of new things which are outlined in detail in the change log, but a quick overview is: Daemon mode -- It'll go to the BG and check periodically based on your preferences New Source -- Added tvbinz.net. So far it works *great*. Especially since nzbindex seems to be having problems with their RSS feeds, and TVnzb has periodic database issues. Print to Standard Out -- Now there is an option to have it output some basic info about what show it's looking for so you don't have to sift through the log file to see what it did. So far it's been working pretty well for me, but please note that the daemon mode is still BETA, so use it at your own risk. There is a lot of good info about it in the CHANGES file, so be sure to read that before enabling it.
Version 0.8.0 BETA 2 -- It's been a hard days night First of all, I have decided to start putting the new versions at the top of the changelog. I am not going to go back and reformat the file because I am exceptionally lazy, but from here on out it makes more sense to me to have the newest version at the top. In fact I am not sure why I didn't do it this way from the begining. As for nzbivo itself, I have made a couple of fairly major changes. The first is the addition of a "daemon" mode. Basically you define when you want primetime to start and stop, and how often you want it to check between those times (in mintes). This should be done in local time, as the program should convert everything to UTC internally. When you run it with daemonize set to true, it will fork and send itself to the background, faithfully doing your evil bidding until you kill -9 it. The reason this is still beta is because I have not completely tested this, nor have I come up with a good way to control the daemon. For now, you just have to kill it manually when you want it to stop. I am also working on how to have it reread the config file on the fly to pick up changes without a restart. Ultimately the goal is to eliminate the need for crontab entries, but we'll see :-) The second change is that I have added a new source: tvbinz.net, which seems to work really well. Finally, I added the title of the episode to the nzb file as it gets downloaded. If you're using SABnzbd, it works quite nicely with their TV sorting code. You will need to add a few lines to your config file to make all this goodness work: # Print downloaded shows to standard out? printStdOut = true ## For the daemonized version, daemonize = false # define your "primetime" start and stop times primeTimeStart = 8:00pm primeTimeStop = 11:00pm # primeTimeCheck is the number of minutes between checks during prime time hours (defined above) primeTimeCheck = 15 # otherTimeCheck is the number of minutes between checks when it is not prime time hours (defined above) otherTimeCheck = 120 # Disable TvBinz if you're so inclined # 1 means TvBinz.net *will* be checked # 0 means TvBinz.net will *not* be checked enableTvBinz = 1 Version 0.1 -- Initial Release! Version 0.2 -- Minor Bigfix in the Season Logic Version 0.3 -- Fairly Major overhaul. We now use nzbindex.nl due to their awesome standards compliant searchable rss feeds. I also cleaned up some of the code to remove a couple unecessary subs. Lastly by request we now exclude 720p and x264 from the nzbindex.nl searches. I plan to make this a configurable feature at some point, but for now, sorry kiddo. Version 0.4 -- We now use strict! Got rid of the external config file, that was a silly idea anyway Killed the subs that related to reading in the config file Pulled said variables into the main program, added comments to describe what they do Changed the names of some subs to make them more readable and make more sense Version 0.4.1 -- Few minor changes Version 0.4.2 -- Some minor updates Added some title scrubbing (Grey's Anatomy should work now) Updated the new show logic, so it should search for a new show when the air date and time has been reached, instead of waiting for tvrage to update Version 0.4.3 -- Redacted due to publishing code on no sleep Version 0.4.4 -- Cleaned up version 0.4.3 Show logic from 0.4.2 should be a bit more solid now We now compile well even with -w enabled (hooray no warnings!) Version 0.4.5 -- Removed `date` so we're all native perl now This helps because now it runs in activeperl under windows NOTE: TimeDate is the name of the package you need to install under ActivePerl Version 0.4.6 -- Removed debug code I accidentally left in, fixed a minor bug in tvrage update logic Version 0.4.7 -- Fixed an updateXML bug When a show would be updated with the new logic, it would not updated the XML file causing the nzb to be downloaded twice. Fixed! Version 0.5.0 -- New features! Thanks to awesome NZBivo user Paolo for adding the ability to supply search templates This is super handy for shows that don't follow the standard showName.SxxEyy format, like Colbert Report, Daily Show, Jay Leno, etc Please see the README for more information on how to use this I also fixed a bug due to my not converting times to 24 hour time Version 0.5.1 -- README Fix and code prettyfying I'm retarded and I was not paying attention when writing the README before To Clarify you *must* use a search field in your .shows file For most shows you'll just use: <Search>%name%.S%season%E%episode%</Search> Version 0.5.2 -- Updated searchString logic I decided that it makes sense that for 98% of the stuff we download there should be a default search template. So I fixed that. It should also help prevent some other possible problems down the line as it now always defines searchString Version 0.6.0 -- Added quality option I have (at long last) implementd a quality setting. You set this on a per show basis in your nbivo.shows file with a <Quality></Quality> tag. Currently it really only supports 720p as an option, but I'll keep working on it to make it more dynamic. As of now, it looks at this as the maximum setting, and goes down from there like so 720p -> standard. This should be considered an expiramental feature, so please send me your feedback as to how it works. I have yet to decide if it should behave as I have it here or if it should work as an abolsute, and not look for anything except the quality listed. So again, please feel free to e-mail me and let me know which you'd prefer. I *am* all about my peeps afterall. Finally, I have also left 0.5.2 available since it seems to be pretty stable. Version 0.6.1 -- Changed quality option Ok, so I didn't like at all the way I implemented the quality option in the previous release. So I have fixed it. Now it will only search for the quality you specify in the shows file. If you do not specify, then it will assume standard quality and go with that. It should also be noted that essentially all we're doing at this point is adding whats in the <Quality> tags to the search string. So you can make it whatever you want, reconfigure how it searches (using the %quality% modifyer) or whatever you feel like doing. Also, to anyone who downloaded 0.6.0. I'm sorry. As soon as I published it I got this aweful feeling like I'd just killed a kitten, so I had to change it right away. Version 0.6.2 -- Added new custom search fields Because some release groups appearantly like to mess with me, some shows have started being posted with the following format: Name.SeasonxEpisode. So for instance: How.I.Met.Your.Mother.3x15 I have added the 2 new custom search fields %seasonshort% and %episodeshort% to work around this. Because examples make life easier for the above pattern, you would put %name%.%seasonshort%x%episodeshort% in your <Search> tag. As a side note, it appears the 720p versions of the shows are still being posted with the typical Name.S01E01.720p format, so set your search strings accordingly. Version 0.6.3 -- Added multiple <Search> tags In order to allow you to more easily manage your shows file I have added the ability to have multiple search tags. It will go through them in ascending order like so <Search> -> <Search1> -> <Search2> -> <SearchN>. Be sure you don't skip any numbers, or it will short circuit the loop. In theory it should allow an infinite number of search elements, but I have not tested it beyond 4 or 5, so your milage may vary. Because running through multiple search tags can cause quite a few connections to the rss feeds I have implemented a per session rss cache for tvnzb in an effort to not piss them off :-) Version 0.6.4 -- Fixed a small presearch bug There was a bug in the pre-air search code. It wasn't anything super major, I had just forgotten to pass $filename to checkSites when doing a pre-air check of nzbindex. The variable is not necessary for anything, but without it perl got pissed and acted like a diva, causing a premature evactuation. It should be fixed now. I also went back through and fixed a couple things that were causing warnings when -w was enabled. Not that its a huge deal, but I like my code to compile as cleanly as possible ;-) Version 0.6.5 -- Enable/Disable sites to search Because there have been lots of spam posts turning up in nzbindex.nl searches, I started working on a way to weed them out. I have some good ideas, but they are taking longer to implement than I would have liked. So in the meantime, now you can disable nzbindex, and only search "verified" posts on tvnzb. Version 0.7.0.BETA1 -- Reworked time checks, external config file, and overall code cleanup This beta is essentially a rewrite. I re-used most of the code, but I went back through and pulled out all the unecessary crap. We now use Date::Manip to do all time comparisons, and everything gets converted to UTC before anything is done to it, so it should be a lot more reliable. Additionally, I also added a spam check. Basically, it will look to see if the pubDate element in the nzbindex.nl rss feed is earlier than the shows airdate. The airdate is based on the time on the east coast in the US (since that is when most shows initially air). I also realize that as there are more options to be set, it is a pain in the butt to reconfigure the program each time a new version comes out. As such, I have created an external config file called nzbivo.config where all your settings are stored. Version 0.7.3.BETA2 -- Fiddled with some stuff I changed a few things around, this one never made it past my own beta testing Version 0.7.0.BETA3 -- Maybe RC1 :-) I think this one is pretty close to final status. I changed the way we do searching to make it more robust. I *think* we will now properly season finales. It works after the show has aired, but I am still working on test cases to test the pre-air code. I have tried to do string sanitation on everything, but my brain is fried so I have probaly missed something. Because I cannot verify for 100% certain that the known issues below have been resolved, they are still listed. The spam check code seems to work pretty well, and I've added a debugMode option to the config file. This is mostly for myself, but if youw ant to turn it on and see lots of probably meaningless crap get displayed as the program runs, be my guest :-D Version 0.7.0.BETA4 -- Probably RC2 Fixed a bug where the quality was ignored if you didn't explicity put %quality% in your <Search> tags If you have a <Quality> tag it now assumes you want to search for that quality and appends it to whatever is in the <Search> tags. Version 0.7.0 -- Finally! Incorporates all the changes from the previous betas. The only change from BETA 4 is that I reworded some of the log file entries to be a bit more clear about what they mean, and I had forgotten to add the offSetUnits attirbute in the config file, so it was always only offsetting by 1 second, which is appearantly what Date::Manip defaults to if you don't give it any units. Please remember that if you are updating from 0.6.5 the dependencies have changed. Check the INSTALL file for the full list, but the additions are Date::Manip and Config::Auto (I think). Known Issues: I think I have resolved the "season finale" bug. We are now a bit smarter about how we search for shows so hopfully that will fix it. The problem does still remain in a different way however. It is possible that if you are looking for a show in the "preair" routine, then it will find part 1 (which is actually the entire thing) and increment the retrieved number. The next time it runs, it will be searching for part 2, which will return the same nzb file (because it is actually 2 episodes in one). At this point it will have effectively downloaded the same show twice. I have not actually witnessed it doing this, but it is a possibility.
Be the first person to add a text review.
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?
Thanks for your review!
Get credit for your review by logging in via OpenID. Click your account provider: