Newznab Basics Explained

If you use usenet, you will probably notice that indexers are becoming quite hard to find, or you find one and they disappear overnight.

A lot of people now are building their own using Newznab.

I recently did this and stumbled across a few issues that the help team resolved, unfortunately searching for these issues on google nothing really comes up so I thought I would write about them here.

Issue 1 – Could not select group (bad name?)
For me, there was two issues that I found out about. The first was me being lazy and adding the groups by just typing a.b.groupname you need to write alt.binaries.groupname in full.

The second issue was that my usenet provider was actually returning no results. Two providers I know work really well, do your research and find one that works with newznab or you may get the same error.

Issue 2 – Changing Usenet Providers
Once I found that my provider was not returning group binaries I changed providers – now to do this is actually a bit of a process.

First – Login to your mysql newznab database either from the terminal or via phpmyadmin if you have it setup

mysql -u databaseusername -p newznab

It will ask for your password, enter the password to your database and you will be at a mysql prompt.

Once here, you need to truncate the tables binaries, parts and partrepair using these commands:

truncate partrepair;
truncate binaries;
truncate parts;

If you typed it wrong, you will get an error.

Once you have truncated the tables above you need to reset some settings in the groups table, otherwise you will get errors because you will be filling the binaries from the wrong starting point. To reset the group settings do this in the mysql database:

update groups set last_record = 0;
update groups set last_record_postdate = null;

As long as that completed successfully, you are ready to change your provider settings:

Goto the root directory of newznab, then into the www directory. In the www directory there is a file called config.php

You need to edit this ile and change NNTP_USERNAME, NNTP_PASSWORD and NNTP_SERVER and possibly some other settings if your proivder offers SSL (change the NNTP_PORT and NNTP_SSLENABLED settings if they do)

Here is an example of what the section you need to edit looks like

define(‘NNTP_USERNAME’, ‘usenetusernamehere’);
define(‘NNTP_PASSWORD’, ‘usenetpasswordhere’);
define(‘NNTP_SERVER’, ‘yournewsserverhere’);
define(‘NNTP_PORT’, ‘119’);
define(‘NNTP_SSLENABLED’, false);

Once edited, save and exit then run update_binaries and then once thats done run update_releases.

Issue 3 – No releases found

I didnt actually have this issue (because i pruchased newznab +) but I noticed a lot of people complaining about it over several forums.

When you run update_releases.php regular expressions are ran on the data gathered to create the releases.

When you run this using the plus version, you will see that during update releases latest regexes are used, this bundled with a whole heap of other reasons is why you should just pay for newznab, seriosuly it is not that expensive.

However, if you are running the free version of newznab you have a very limited regex table – but you can goto this website some users have posted their own regex for particular groups – this will help you build releases properly. Be aware, it is very very easy for someone to write an incorrect regex that will take a considerable amount of CPU/Memory resources to process.

Like I said above though, its easier to pay a small amount then to write your own regexes.

Issue 4 – Killed appears when running update_releases.php

This occurs when php runs out of memory entirely. There is two reasons this may occur – php.ini has memory_limit set too low – newznab recommend this bet set to 256M as a minute (yes I wrote just M as thats what php.ini requires) if you want to run php with no memory limit set this:

memory_limit = -1

If you had memory limit set unlimited, and the process is still killed you may be trying to process to many releases at once like I was, I had tried to backfill a group 11 months back and then process the releases, of course not a good idea so I suggest you don’t do that either.

Special Notes:

Prior to setting this up I read a lot about how newznab uses lots of diskspace, lots of bandwidth.

I currently have 53,491 releases stored and am using less than 5GB of data storage.

I have used over 100GB of data though (which is a lot if you are in Australia like me), So I purchased a VPS through RamNode that way, my internet at home isnt affected by newznab hitting the bins all day long. Plus Ramnode offer the ability to buy more bandwidth if necessary – but the plan I am on is 3TB a month which I doubt I’ll hit. Certain Ramnode VPS also give you the ability to upgrade storage as well so even if you have a large collection of nzbs or plan on backfilling several groups you can get enough storage.

I hope this helps people that are trying to set up Newznab.

I would also like to say that Newznab + is worth the small cost they ask, and that the support team they have are exceptional.