diff --git a/sickbeard/providers/alpharatio.py b/sickbeard/providers/alpharatio.py
index 39dd4d8ba6306856628f072d89dc3df4cd71a276..9aebd87370851d0aadb911b325f96377b48e8676 100644
--- a/sickbeard/providers/alpharatio.py
+++ b/sickbeard/providers/alpharatio.py
@@ -24,6 +24,7 @@ import traceback
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.bs4_parser import BS4Parser
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -109,13 +110,14 @@ class AlphaRatioProvider(TorrentProvider):
                             url = result.find('a', attrs={'title': 'Download'})
 
                             try:
-                                title = link.contents[0]
-                                download_url = self.urls['download'] % (url['href'])
-                                seeders = cells[len(cells) - 2].contents[0]
-                                leechers = cells[len(cells) - 1].contents[0]
-                                # FIXME
-                                size = -1
-                            except (AttributeError, TypeError):
+                                num_cells = len(cells)
+                                title = link.contents[0] if link.contents[0] else None
+                                download_url = self.urls['download'] % (url['href']) if url['href'] else None
+                                seeders = cells[num_cells - 2].contents[0] if cells[len(cells) - 2].contents[0] else 1
+                                leechers = cells[num_cells - 1].contents[0] if cells[len(cells) - 1].contents[0] else 0
+                                torrent_size = cells[len(cells) - 4].contents[0]
+                                size = convert_size(torrent_size) or -1
+                            except (AttributeError, TypeError, KeyError, ValueError):
                                 continue
 
                             if not all([title, download_url]):
diff --git a/sickbeard/providers/btdigg.py b/sickbeard/providers/btdigg.py
index 099b7116b2f3467e8a36ba51c16b7668813240b0..81bca3e05f89bb2dafc48abb73fd35273d773ff7 100644
--- a/sickbeard/providers/btdigg.py
+++ b/sickbeard/providers/btdigg.py
@@ -22,6 +22,7 @@
 from urllib import urlencode
 from sickbeard import logger
 from sickbeard import tvcache
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -70,43 +71,49 @@ class BTDIGGProvider(TorrentProvider):
                     logger.log(u"No data returned to be parsed!!!", logger.DEBUG)
                     continue
 
-                for torrent in jdata:
-                    if not torrent['name']:
-                        logger.log(u"Ignoring result since it has no name", logger.DEBUG)
-                        continue
-
-                    if torrent['ff']:
-                        logger.log(u"Ignoring result for %s since it's a fake (level = %s)" % (torrent['name'], torrent['ff']), logger.DEBUG)
-                        continue
-
-                    if not torrent['files']:
-                        logger.log(u"Ignoring result for %s without files" % torrent['name'], logger.DEBUG)
-                        continue
-
-                    download_url = torrent['magnet'] + self._custom_trackers
-
-                    if not download_url:
-                        logger.log(u"Ignoring result for %s without a url" % torrent['name'], logger.DEBUG)
-                        continue
-
-                    # FIXME
-                    seeders = 1
-                    leechers = 0
-
-                    # # Filter unseeded torrent (Unsupported)
-                    # if seeders < self.minseed or leechers < self.minleech:
-                    #    if mode != 'RSS':
-                    #        logger.log(u"Discarding torrent because it doesn't meet the minimum seeders or leechers: {0} (S:{1} L:{2})".format(title, seeders, leechers), logger.DEBUG)
-                    #    continue
-
-                    if mode != 'RSS':
-                        logger.log(u"Found result: %s" % torrent['name'], logger.DEBUG)
-
-                    item = torrent['name'], download_url, torrent['size'], seeders, leechers
-                    items[mode].append(item)
-
-            # # For each search mode sort all the items by seeders if available (Unsupported)
-            # items[mode].sort(key=lambda tup: tup[3], reverse=True)
+                try:
+
+                    for torrent in jdata:
+                        if not torrent['name']:
+                            logger.log(u"Ignoring result since it has no name", logger.DEBUG)
+                            continue
+
+                        if torrent['ff']:
+                            logger.log(u"Ignoring result for %s since it's a fake (level = %s)" % (torrent['name'], torrent['ff']), logger.DEBUG)
+                            continue
+
+                        if not torrent['files']:
+                            logger.log(u"Ignoring result for %s without files" % torrent['name'], logger.DEBUG)
+                            continue
+
+                        download_url = torrent['magnet'] + self._custom_trackers if torrent['magnet'] else None
+
+                        # Provider doesn't provide seeders/leechers
+                        seeders = 1
+                        leechers = 0
+                        torrent_size = torrent['size']
+                        size = convert_size(torrent_size) or -1
+        
+                        if not all([title, download_url]):
+                            continue
+        
+                        # Filter unseeded torrent (Unsupported)
+                        #if seeders < self.minseed or leechers < self.minleech:
+                        #    if mode != 'RSS':
+                        #        logger.log(u"Discarding torrent because it doesn't meet the minimum seeders or leechers: {0} (S:{1} L:{2})".format(title, seeders, leechers), logger.DEBUG)
+                        #    continue
+        
+                        item = title, download_url, size, seeders, leechers
+                        if mode != 'RSS':
+                            logger.log(u"Found result: %s " % title, logger.DEBUG)
+        
+                        items[mode].append(item)
+
+                except Exception:
+                    logger.log(u"Failed parsing provider. Traceback: %s" % traceback.format_exc(), logger.WARNING)
+
+            # For each search mode sort all the items by seeders if available
+            #items[mode].sort(key=lambda tup: tup[3], reverse=True)
 
             results += items[mode]
 
diff --git a/sickbeard/providers/tntvillage.py b/sickbeard/providers/tntvillage.py
index 430467a283a93cefd7809c77fe45a1350ed5d8ca..f4c2167dfe3a2c36e6e58116f6b2bcfe441b32d7 100644
--- a/sickbeard/providers/tntvillage.py
+++ b/sickbeard/providers/tntvillage.py
@@ -26,6 +26,7 @@ from sickbeard import db
 
 from sickbeard.bs4_parser import BS4Parser
 from sickbeard.name_parser.parser import NameParser, InvalidNameException, InvalidShowException
+from sickrage.helper.common import convert_size
 from sickrage.helper.exceptions import AuthException
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
@@ -336,8 +337,8 @@ class TNTVillageProvider(TorrentProvider):
                                     leechers = int(leechers.strip('[]'))
                                     seeders = result.find_all('td')[3].find_all('td')[2].text
                                     seeders = int(seeders.strip('[]'))
-                                    # FIXME
-                                    size = -1
+                                    torrent_size = result.find_all('td')[3].find_all('td')[3].text.strip('[]') + " GB"
+                                    size = convert_size(torrent_size) or -1
                                 except (AttributeError, TypeError):
                                     continue
 
diff --git a/sickbeard/providers/torrentday.py b/sickbeard/providers/torrentday.py
index 9c79bbd6b0f9f2eb435452af6603dc67ab9d2e0f..d758d985e8ea41e9f333ce11a8f79577ff69fb28 100644
--- a/sickbeard/providers/torrentday.py
+++ b/sickbeard/providers/torrentday.py
@@ -20,6 +20,7 @@ import re
 import requests
 from sickbeard import logger
 from sickbeard import tvcache
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -129,12 +130,12 @@ class TorrentDayProvider(TorrentProvider):
 
                 for torrent in torrents:
 
-                    title = re.sub(r"\[.*\=.*\].*\[/.*\]", "", torrent['name'])
-                    download_url = self.urls['download'] % (torrent['id'], torrent['fname'])
-                    seeders = int(torrent['seed'])
-                    leechers = int(torrent['leech'])
-                    # FIXME
-                    size = -1
+                    title = re.sub(r"\[.*\=.*\].*\[/.*\]", "", torrent['name']) if torrent['name'] else None
+                    download_url = self.urls['download'] % (torrent['id'], torrent['fname']) if torrent['id'] and torrent['fname'] else None
+                    seeders = int(torrent['seed']) if torrent['seed'] else 1
+                    leechers = int(torrent['leech']) if torrent['leech'] else 0
+                    torrent_size = torrent['size']
+                    size = convert_size(torrent_size) or -1
 
                     if not all([title, download_url]):
                         continue