diff --git a/sickbeard/providers/bitsnoop.py b/sickbeard/providers/bitsnoop.py
index 5e89e174debd1c478522c4f23be6a953f3d850f0..72417a428f3d1daffc6e3f68e2b3c4c35ea380c4 100644
--- a/sickbeard/providers/bitsnoop.py
+++ b/sickbeard/providers/bitsnoop.py
@@ -92,9 +92,10 @@ class BitSnoopProvider(TorrentProvider):  # pylint: disable=too-many-instance-at
                             if not (title and download_url):
                                 continue
 
-                            seeders = try_int(item.find('numseeders').text, 0)
-                            leechers = try_int(item.find('numleechers').text, 0)
-                            size = try_int(item.find('size').text, -1)
+                            seeders = try_int(item.find('numseeders').text)
+                            leechers = try_int(item.find('numleechers').text)
+                            torrent_size = item.find('size').text
+                            size = convert_size(torrent_size) or -1
 
                             info_hash = item.find('infohash').text
 
diff --git a/sickbeard/providers/cpasbien.py b/sickbeard/providers/cpasbien.py
index 83ed1e9349a8fb4cdef3740266ff228e2316b337..6a8640404c47ae996cb7c754f01c7f200d0dd55b 100644
--- a/sickbeard/providers/cpasbien.py
+++ b/sickbeard/providers/cpasbien.py
@@ -21,7 +21,7 @@ import traceback
 
 from sickbeard import logger
 from sickbeard import tvcache
-from sickrage.helper.common import try_int
+from sickrage.helper.common import try_int, convert_size
 from sickbeard.bs4_parser import BS4Parser
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
@@ -80,9 +80,11 @@ class CpasbienProvider(TorrentProvider):
                                 title = torrent.find(class_="titre").get_text(strip=True).replace("HDTV", "HDTV x264-CPasBien")
                                 tmp = torrent.find("a")['href'].split('/')[-1].replace('.html', '.torrent').strip()
                                 download_url = (self.url + '/telechargement/%s' % tmp)
-                                size = self._convertSize(torrent.find(class_="poid").get_text(strip=True))
                                 seeders = try_int(torrent.find(class_="up").get_text(strip=True))
                                 leechers = try_int(torrent.find(class_="down").get_text(strip=True))
+                                torrent_size = torrent.find(class_="poid").get_text()
+
+                                size = convert_size(torrent_size) or -1
                             except (AttributeError, TypeError, KeyError, IndexError):
                                 continue
 
@@ -114,27 +116,6 @@ class CpasbienProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    @staticmethod
-    def _convertSize(sizeString):
-        size = sizeString[:-2].strip()
-        modifier = sizeString[-2:].upper()
-        try:
-            size = float(size)
-            if modifier in 'KO':
-                size *= 1024 ** 1
-            elif modifier in 'MO':
-                size *= 1024 ** 2
-            elif modifier in 'GO':
-                size *= 1024 ** 3
-            elif modifier in 'TO':
-                size *= 1024 ** 4
-            else:
-                raise
-        except Exception:
-            size = -1
-
-        return long(size)
-
 
 class CpasbienCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/danishbits.py b/sickbeard/providers/danishbits.py
index b531cbb4d5992375783aef8c11aadeb6cbe26f1c..1afa8ef8cdd55773b39462d861ea18e1dac2c71c 100644
--- a/sickbeard/providers/danishbits.py
+++ b/sickbeard/providers/danishbits.py
@@ -20,10 +20,10 @@
 import traceback
 import urllib
 import time
-import re
 
 from sickbeard import logger
 from sickbeard import tvcache
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 from sickbeard.bs4_parser import BS4Parser
@@ -146,7 +146,9 @@ class DanishbitsProvider(TorrentProvider):  # pylint: disable=too-many-instance-
                             download_url = self.urls['base_url'] + result.find('span', attrs={'class': 'right'}).find('a')['href']
                             seeders = int(result.find_all('td')[6].text)
                             leechers = int(result.find_all('td')[7].text)
-                            size = self._convertSize(result.find_all('td')[2].text)
+                            torrent_size = result.find_all('td')[2].text
+
+                            size = convert_size(torrent_size) or -1
                             freeleech = result.find('span', class_='freeleech')
                             # except (AttributeError, TypeError, KeyError):
                             #     logger.log(u"attrErr: {0}, tErr: {1}, kErr: {2}".format(AttributeError, TypeError, KeyError), logger.DEBUG)
@@ -180,26 +182,6 @@ class DanishbitsProvider(TorrentProvider):  # pylint: disable=too-many-instance-
 
         return results
 
-    @staticmethod
-    def _convertSize(size):
-        regex = re.compile(r'(.+?\w{2})\d+ file\w')
-        m = regex.match(size)
-        size = m.group(1)
-
-        size, modifier = size[:-2], size[-2:]
-        size = size.replace(',', '')  # strip commas from comma separated values
-
-        size = float(size)
-        if modifier in 'KB':
-            size *= 1024 ** 1
-        elif modifier in 'MB':
-            size *= 1024 ** 2
-        elif modifier in 'GB':
-            size *= 1024 ** 3
-        elif modifier in 'TB':
-            size *= 1024 ** 4
-        return long(size)
-
     def seedRatio(self):
         return self.ratio
 
diff --git a/sickbeard/providers/extratorrent.py b/sickbeard/providers/extratorrent.py
index c32c5640c37bb6308362b94b5a41f0228e2eaf27..aef704283d4b62cf11bc46d905ce37d39f8554e2 100644
--- a/sickbeard/providers/extratorrent.py
+++ b/sickbeard/providers/extratorrent.py
@@ -22,7 +22,7 @@ import sickbeard
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.common import USER_AGENT
-from sickrage.helper.common import try_int
+from sickrage.helper.common import try_int, convert_size
 from sickbeard.bs4_parser import BS4Parser
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
@@ -74,9 +74,10 @@ class ExtraTorrentProvider(TorrentProvider):  # pylint: disable=too-many-instanc
                     for item in parser.findAll('item'):
                         try:
                             title = re.sub(r'^<!\[CDATA\[|\]\]>$', '', item.find('title').get_text(strip=True))
-                            size = try_int(item.find('size').get_text(strip=True), -1)
                             seeders = try_int(item.find('seeders').get_text(strip=True))
                             leechers = try_int(item.find('leechers').get_text(strip=True))
+                            torrent_size = item.find('size').get_text()
+                            size = convert_size(torrent_size) or -1
 
                             if sickbeard.TORRENT_METHOD == 'blackhole':
                                 enclosure = item.find('enclosure')  # Backlog doesnt have enclosure
diff --git a/sickbeard/providers/gftracker.py b/sickbeard/providers/gftracker.py
index 79da127b9418f064b86bf7bda3e0b8cb42f4e6f4..888426c31221d6ac5f3a5686fc1da9697e047dd7 100644
--- a/sickbeard/providers/gftracker.py
+++ b/sickbeard/providers/gftracker.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.helper.exceptions import AuthException
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
@@ -126,10 +127,7 @@ class GFTrackerProvider(TorrentProvider):
                                 leechers = int(shares[1])
 
                                 torrent_size = cells[7].get_text().split("/", 1)[0]
-                                if re.match(r"\d+([,\.]\d+)?\s*[KkMmGgTt]?[Bb]", torrent_size):
-                                    size = self._convertSize(torrent_size.strip())
-                                else:
-                                    size = -1
+                                size = convert_size(torrent_size) or -1
 
                             except (AttributeError, TypeError):
                                 continue
@@ -162,23 +160,6 @@ class GFTrackerProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    def _convertSize(self, sizeString):
-        size = sizeString[:-2].strip()
-        modifier = sizeString[-2:].upper()
-        try:
-            size = float(size)
-            if modifier in 'KB':
-                size *= 1024 ** 1
-            elif modifier in 'MB':
-                size *= 1024 ** 2
-            elif modifier in 'GB':
-                size *= 1024 ** 3
-            elif modifier in 'TB':
-                size *= 1024 ** 4
-        except Exception:
-            size = -1
-        return long(size)
-
 
 class GFTrackerCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/hd4free.py b/sickbeard/providers/hd4free.py
index 4cf1526a486c0a09a7c3d601c39f5efcb0699fd3..80700de509cd48187c31fcfa5228c598ce7a8184 100644
--- a/sickbeard/providers/hd4free.py
+++ b/sickbeard/providers/hd4free.py
@@ -20,6 +20,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
 
 
@@ -87,9 +88,11 @@ class HD4FREEProvider(TorrentProvider):  # pylint: disable=too-many-instance-att
                     seeders = jdata[i]["seeders"]
                     leechers = jdata[i]["leechers"]
                     title = jdata[i]["release_name"]
-                    size = jdata[i]["size"]
+                    torrent_size = jdata[i]["size"]
                     download_url = jdata[i]["download_url"]
 
+                    size = convert_size(torrent_size) or -1
+
                     if not all([title, download_url]):
                         continue
 
diff --git a/sickbeard/providers/hdspace.py b/sickbeard/providers/hdspace.py
index addac0b45e58dea7e03dfe028294a2fe40f6e9bc..d186ddd1d442b180c6ab8bf5d3efd7ef52613711 100644
--- a/sickbeard/providers/hdspace.py
+++ b/sickbeard/providers/hdspace.py
@@ -26,6 +26,7 @@ from bs4 import BeautifulSoup
 
 from sickbeard import logger
 from sickbeard import tvcache
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -138,7 +139,8 @@ class HDSpaceProvider(TorrentProvider):
                         download_url = self.urls['base_url'] + dl_href
                         seeders = int(result.find('span', attrs={'class': 'seedy'}).find('a').text)
                         leechers = int(result.find('span', attrs={'class': 'leechy'}).find('a').text)
-                        size = re.match(r'.*?([0-9]+,?\.?[0-9]* [KkMmGg]+[Bb]+).*', str(result), re.DOTALL).group(1)
+                        torrent_size = re.match(r'.*?([0-9]+,?\.?[0-9]* [KkMmGg]+[Bb]+).*', str(result), re.DOTALL).group(1)
+                        size = convert_size(torrent_size) or -1
 
                         if not all([title, download_url]):
                             continue
@@ -168,19 +170,6 @@ class HDSpaceProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    def _convertSize(self, size):
-        size, modifier = size.split(' ')
-        size = float(size)
-        if modifier in 'KB':
-            size *= 1024 ** 1
-        elif modifier in 'MB':
-            size *= 1024 ** 2
-        elif modifier in 'GB':
-            size *= 1024 ** 3
-        elif modifier in 'TB':
-            size *= 1024 ** 4
-        return long(size)
-
 
 class HDSpaceCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/hdtorrents.py b/sickbeard/providers/hdtorrents.py
index 49ad271ca423b9792871596f2fd78fb44e8ad2df..7fe30484a05c34580a08c54d3a4d083b5581255d 100644
--- a/sickbeard/providers/hdtorrents.py
+++ b/sickbeard/providers/hdtorrents.py
@@ -25,7 +25,7 @@ from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.bs4_parser import BS4Parser
 
-from sickrage.helper.common import try_int
+from sickrage.helper.common import try_int, convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -152,7 +152,9 @@ class HDTorrentsProvider(TorrentProvider):  # pylint: disable=too-many-instance-
                             title = cells[labels.index(u'Filename')].a.get_text(strip=True)
                             seeders = try_int(cells[labels.index(u'S')].get_text(strip=True))
                             leechers = try_int(cells[labels.index(u'L')].get_text(strip=True))
-                            size = self._convertSize(cells[labels.index(u'Size')].get_text(strip=True))
+                            torrent_size = cells[labels.index(u'Size')].get_text()
+
+                            size = convert_size(torrent_size) or -1
                             download_url = self.url + '/' + cells[labels.index(u'Dl')].a['href']
                         except (AttributeError, TypeError, KeyError, ValueError, IndexError):
                             continue
@@ -182,22 +184,6 @@ class HDTorrentsProvider(TorrentProvider):  # pylint: disable=too-many-instance-
     def seed_ratio(self):
         return self.ratio
 
-    @staticmethod
-    def _convertSize(size):
-        try:
-            modifier = size[-2:].upper()
-            size = float(size[:-2].strip())
-
-            units = ['KB', 'MB', 'GB', 'TB', 'PB']
-            if modifier in units:
-                size *= 1024. ** units.index(modifier)
-            else:
-                raise
-        except Exception:
-            size = -1
-
-        return long(size)
-
 
 class HDTorrentsCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/hounddawgs.py b/sickbeard/providers/hounddawgs.py
index f6fa855453df7e21e9dc62d5396efa155c2e9013..74757f70373bed922e6658ac74ecfb4ffdc4862b 100644
--- a/sickbeard/providers/hounddawgs.py
+++ b/sickbeard/providers/hounddawgs.py
@@ -22,7 +22,7 @@ import traceback
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.bs4_parser import BS4Parser
-from sickrage.helper.common import try_int
+from sickrage.helper.common import try_int, convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -149,7 +149,7 @@ class HoundDawgsProvider(TorrentProvider):  # pylint: disable=too-many-instance-
                                 download_url = self.urls['base_url'] + allAs[0].attrs['href']
                                 torrent_size = result.find("td", class_="nobr").find_next_sibling("td").string
                                 if torrent_size:
-                                    size = self._convertSize(torrent_size)
+                                    size = convert_size(torrent_size) or -1
                                 seeders = try_int((result.findAll('td')[6]).text)
                                 leechers = try_int((result.findAll('td')[7]).text)
 
@@ -181,19 +181,6 @@ class HoundDawgsProvider(TorrentProvider):  # pylint: disable=too-many-instance-
 
         return results
 
-    @staticmethod
-    def _convertSize(size):
-        size = re.sub(r'[i, ]+', '', size)
-        matches = re.match(r'([\d.]+)([TGMK])', size.strip().upper())
-        if not matches:
-            return -1
-
-        size = matches.group(1)
-        modifier = matches.group(2)
-
-        mod = {'K': 1, 'M': 2, 'G': 3, 'T': 4}
-        return long(float(size) * 1024 ** mod[modifier])
-
     def seed_ratio(self):
         return self.ratio
 
diff --git a/sickbeard/providers/iptorrents.py b/sickbeard/providers/iptorrents.py
index 4fde4c7684e3f62d6a726e628e1f1aec1b2b08bb..d9abd5b00e56af0725e30ecf260ba25fc1414f11 100644
--- a/sickbeard/providers/iptorrents.py
+++ b/sickbeard/providers/iptorrents.py
@@ -21,6 +21,7 @@ import re
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.bs4_parser import BS4Parser
+from sickrage.helper.common import convert_size
 from sickrage.helper.exceptions import AuthException, ex
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
@@ -127,9 +128,10 @@ class IPTorrentsProvider(TorrentProvider):
                             try:
                                 title = result.find_all('td')[1].find('a').text
                                 download_url = self.urls['base_url'] + result.find_all('td')[3].find('a')['href']
-                                size = self._convertSize(result.find_all('td')[5].text)
                                 seeders = int(result.find('td', attrs={'class': 'ac t_seeders'}).text)
                                 leechers = int(result.find('td', attrs={'class': 'ac t_leechers'}).text)
+                                torrent_size = result.find_all('td')[5].text
+                                size = convert_size(torrent_size) or -1
                             except (AttributeError, TypeError, KeyError):
                                 continue
 
@@ -161,20 +163,6 @@ class IPTorrentsProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    @staticmethod
-    def _convertSize(size):
-        size, modifier = size.split(' ')
-        size = float(size)
-        if modifier in 'KB':
-            size *= 1024 ** 1
-        elif modifier in 'MB':
-            size *= 1024 ** 2
-        elif modifier in 'GB':
-            size *= 1024 ** 3
-        elif modifier in 'TB':
-            size *= 1024 ** 4
-        return long(size)
-
 
 class IPTorrentsCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/kat.py b/sickbeard/providers/kat.py
index 2472449e29d23dd636b212b45d15e9357ccb73af..5262b6db9111174df02234ae9d8cd60a31a00307 100755
--- a/sickbeard/providers/kat.py
+++ b/sickbeard/providers/kat.py
@@ -26,7 +26,7 @@ import sickbeard
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.common import USER_AGENT
-from sickrage.helper.common import try_int
+from sickrage.helper.common import try_int, convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -114,10 +114,11 @@ class KATProvider(TorrentProvider):
                             if not (title and download_url):
                                 continue
 
-                            seeders = try_int(item.find('torrent:seeds').text, 0)
-                            leechers = try_int(item.find('torrent:peers').text, 0)
-                            verified = bool(try_int(item.find('torrent:verified').text, 0))
-                            size = try_int(item.find('torrent:contentlength').text)
+                            seeders = try_int(item.find('torrent:seeds').text)
+                            leechers = try_int(item.find('torrent:peers').text)
+                            verified = bool(try_int(item.find('torrent:verified').text))
+                            torrent_size = item.find('torrent:contentlength').text
+                            size = convert_size(torrent_size) or -1
 
                             info_hash = item.find('torrent:infohash').text
                             # link = item['link']
diff --git a/sickbeard/providers/limetorrents.py b/sickbeard/providers/limetorrents.py
index 6a73e2d846a531f689098b9b59a8e9c465088dcf..d9abea5bed718aa68ecfb74b2643e113f3a68d84 100644
--- a/sickbeard/providers/limetorrents.py
+++ b/sickbeard/providers/limetorrents.py
@@ -21,7 +21,7 @@ from bs4 import BeautifulSoup
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.common import USER_AGENT
-from sickrage.helper.common import try_int
+from sickrage.helper.common import try_int, convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -97,7 +97,10 @@ class LimeTorrentsProvider(TorrentProvider): # pylint: disable=too-many-instance
                                 description = item.find('description').text.partition(',')
                                 seeders = try_int(description[0].lstrip('Seeds: ').strip())
                                 leechers = try_int(description[2].lstrip('Leechers ').strip())
-                            size = try_int(item.find('size').text, -1)
+
+                            torrent_size = item.find('size').text
+
+                            size = convert_size(torrent_size) or -1
 
                         except (AttributeError, TypeError, KeyError, ValueError):
                             continue
diff --git a/sickbeard/providers/morethantv.py b/sickbeard/providers/morethantv.py
index 71892f1e7766fad006478162a3a625a596b2ab2d..d1b8476034ba92bcf1532186d82d046aa0be6265 100644
--- a/sickbeard/providers/morethantv.py
+++ b/sickbeard/providers/morethantv.py
@@ -28,6 +28,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.helper.exceptions import AuthException
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
@@ -145,12 +146,10 @@ class MoreThanTVProvider(TorrentProvider):
                                 download_url = self.urls['download'] % torrent_id_long
 
                                 seeders = cells[6].contents[0]
-
                                 leechers = cells[7].contents[0]
+                                torrent_size = cells[4].text.strip()
 
-                                size = -1
-                                if re.match(r'\d+([,\.]\d+)?\s*[KkMmGgTt]?[Bb]', cells[4].contents[0]):
-                                    size = self._convertSize(cells[4].text.strip())
+                                size = convert_size(torrent_size) or -1
 
                             except (AttributeError, TypeError):
                                 continue
@@ -183,23 +182,6 @@ class MoreThanTVProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    def _convertSize(self, sizeString):
-        size = sizeString[:-2].strip()
-        modifier = sizeString[-2:].upper()
-        try:
-            size = float(size)
-            if modifier in 'KB':
-                size *= 1024 ** 1
-            elif modifier in 'MB':
-                size *= 1024 ** 2
-            elif modifier in 'GB':
-                size *= 1024 ** 3
-            elif modifier in 'TB':
-                size *= 1024 ** 4
-        except Exception:
-            size = -1
-        return long(size)
-
 
 class MoreThanTVCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/newpct.py b/sickbeard/providers/newpct.py
index 9305b0384573d42e6ae9d6cf07981c3a010f754c..b1dba3c91aa54e5d14c4bf681188566f793e0174 100644
--- a/sickbeard/providers/newpct.py
+++ b/sickbeard/providers/newpct.py
@@ -27,6 +27,7 @@ from sickbeard import helpers
 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
 
 
@@ -113,17 +114,18 @@ class newpctProvider(TorrentProvider):
 
                         for row in torrent_table[:-1]:
                             try:
-                                torrent_size = row.findAll('td')[2]
                                 torrent_row = row.findAll('a')[0]
 
                                 download_url = torrent_row.get('href', '')
-                                size = self._convertSize(torrent_size.text)
+
                                 title = self._processTitle(torrent_row.get('title', ''))
 
                                 # Provider does not provide seeders/leechers
                                 seeders = 1
                                 leechers = 0
+                                torrent_size = row.findAll('td')[2].text
 
+                                size = convert_size(torrent_size) or -1
                             except (AttributeError, TypeError):
                                 continue
 
@@ -199,19 +201,6 @@ class newpctProvider(TorrentProvider):
 
         return False
 
-    @staticmethod
-    def _convertSize(size):
-        size, modifier = size.split(' ')
-        size = float(size)
-        if modifier in 'KB':
-            size *= 1024 ** 1
-        elif modifier in 'MB':
-            size *= 1024 ** 2
-        elif modifier in 'GB':
-            size *= 1024 ** 3
-        elif modifier in 'TB':
-            size *= 1024 ** 4
-        return long(size)
 
     @staticmethod
     def _processTitle(title):
diff --git a/sickbeard/providers/newznab.py b/sickbeard/providers/newznab.py
index 9c458647dfa999ed6a58f5543b19cb66ed3297a8..0d9c8e370b9165cc4a2fda7fba08e0f2881b5ba2 100644
--- a/sickbeard/providers/newznab.py
+++ b/sickbeard/providers/newznab.py
@@ -37,7 +37,7 @@ from sickbeard import db
 from sickbeard.common import Quality
 from sickrage.helper.encoding import ek, ss
 from sickrage.show.Show import Show
-from sickrage.helper.common import try_int
+from sickrage.helper.common import try_int, convert_size
 # from sickbeard.common import USER_AGENT
 from sickrage.providers.nzb.NZBProvider import NZBProvider
 
@@ -357,15 +357,17 @@ class NewznabProvider(NZBProvider):
                 continue
 
             seeders = leechers = None
-            size = try_int(item.size, -1)
+            torrent_size = item.size
             for attr in item.findAll('newznab:attr') + item.findAll('torznab:attr'):
-                size = try_int(attr['value'], -1) if attr['name'] == 'size' else size
+                torrent_size = attr['value'] if attr['name'] == 'size' else torrent_size
                 seeders = try_int(attr['value'], 1) if attr['name'] == 'seeders' else seeders
-                leechers = try_int(attr['value'], 0) if attr['name'] == 'peers' else leechers
+                leechers = try_int(attr['value']) if attr['name'] == 'peers' else leechers
 
-            if not size or (torznab and (seeders is None or leechers is None)):
+            if not torrent_size or (torznab and (seeders is None or leechers is None)):
                 continue
 
+            size = convert_size(torrent_size) or -1
+
             result = {'title': title, 'link': download_url, 'size': size, 'seeders': seeders, 'leechers': leechers}
             results.append(result)
 
diff --git a/sickbeard/providers/nyaatorrents.py b/sickbeard/providers/nyaatorrents.py
index fddc7b923db01d930122eabd6fa73dfdf8cacf40..0c3e96c1fa7d375dd7e47f875b59963f6b630e45 100644
--- a/sickbeard/providers/nyaatorrents.py
+++ b/sickbeard/providers/nyaatorrents.py
@@ -22,6 +22,7 @@ import re
 
 from sickbeard import logger
 from sickbeard import tvcache
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -80,8 +81,8 @@ class NyaaProvider(TorrentProvider):
                     if not all([title, download_url]):
                         continue
 
-                    seeders, leechers, size, verified = s.findall(curItem['summary'])[0]
-                    size = self._convertSize(size)
+                    seeders, leechers, torrent_size, verified = s.findall(curItem['summary'])[0]
+                    size = convert_size(torrent_size) or -1
 
                     # Filter unseeded torrent
                     if seeders < self.minseed or leechers < self.minleech:
@@ -106,20 +107,6 @@ class NyaaProvider(TorrentProvider):
 
         return results
 
-    @staticmethod
-    def _convertSize(size):
-        size, modifier = size.split(' ')
-        size = float(size)
-        if modifier in 'KiB':
-            size *= 1024 ** 1
-        elif modifier in 'MiB':
-            size *= 1024 ** 2
-        elif modifier in 'GiB':
-            size *= 1024 ** 3
-        elif modifier in 'TiB':
-            size *= 1024 ** 4
-        return long(size)
-
     def seed_ratio(self):
         return self.ratio
 
diff --git a/sickbeard/providers/pretome.py b/sickbeard/providers/pretome.py
index 96fcf5ede873ffd568e784f00bf6a6a74b1b5a98..851a3def1ac5e64a5f61b86208ac76f79232f9a5 100644
--- a/sickbeard/providers/pretome.py
+++ b/sickbeard/providers/pretome.py
@@ -24,11 +24,11 @@ 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
 
 
 class PretomeProvider(TorrentProvider):
-
     def __init__(self):
 
         TorrentProvider.__init__(self, "Pretome")
@@ -134,10 +134,8 @@ class PretomeProvider(TorrentProvider):
 
                                 # Need size for failed downloads handling
                                 if size is None:
-                                    if re.match(r'[0-9]+,?\.?[0-9]*[KkMmGg]+[Bb]+', cells[7].text):
-                                        size = self._convertSize(cells[7].text)
-                                        if not size:
-                                            size = -1
+                                    torrent_size = cells[7].text
+                                    size = convert_size(torrent_size) or -1
 
                             except (AttributeError, TypeError):
                                 continue
@@ -170,20 +168,6 @@ class PretomeProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    def _convertSize(self, sizeString):
-        size = sizeString[:-2]
-        modifier = sizeString[-2:]
-        size = float(size)
-        if modifier in 'KB':
-            size *= 1024 ** 1
-        elif modifier in 'MB':
-            size *= 1024 ** 2
-        elif modifier in 'GB':
-            size *= 1024 ** 3
-        elif modifier in 'TB':
-            size *= 1024 ** 4
-        return long(size)
-
 
 class PretomeCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/rarbg.py b/sickbeard/providers/rarbg.py
index b13b62597709ebf13ce143ee834ac65588ef64d5..bd03bda7a08c954c0dcc288169a5ed7fd446e8fa 100644
--- a/sickbeard/providers/rarbg.py
+++ b/sickbeard/providers/rarbg.py
@@ -27,6 +27,7 @@ from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.common import USER_AGENT
 from sickbeard.indexers.indexer_config import INDEXER_TVDB
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -217,9 +218,10 @@ class RarbgProvider(TorrentProvider):
                         try:
                             title = item['title']
                             download_url = item['download']
-                            size = item['size']
                             seeders = item['seeders']
                             leechers = item['leechers']
+                            torrent_size = item['size']
+                            size = convert_size(torrent_size) or -1
                             # pubdate = item['pubdate']
 
                             if not all([title, download_url]):
diff --git a/sickbeard/providers/scc.py b/sickbeard/providers/scc.py
index 0aac6ce591f12b9fcd8d9e56e8119a0a1a3af58b..9d57d04ae1991f61dcca08342db56d5ce369f329 100644
--- a/sickbeard/providers/scc.py
+++ b/sickbeard/providers/scc.py
@@ -26,6 +26,7 @@ import sickbeard
 from sickbeard.common import cpu_presets
 from sickbeard import logger
 from sickbeard import tvcache
+from sickrage.helper.common import convert_size
 from sickbeard.bs4_parser import BS4Parser
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
@@ -136,7 +137,9 @@ class SCCProvider(TorrentProvider):  # pylint: disable=too-many-instance-attribu
                             download_url = self.urls['download'] % url['href']
                             seeders = int(result.find('td', attrs={'class': 'ttr_seeders'}).string)
                             leechers = int(result.find('td', attrs={'class': 'ttr_leechers'}).string)
-                            size = self._convertSize(result.find('td', attrs={'class': 'ttr_size'}).contents[0])
+                            torrent_size = result.find('td', attrs={'class': 'ttr_size'}).contents[0]
+
+                            size = convert_size(torrent_size) or -1
                         except (AttributeError, TypeError):
                             continue
 
@@ -165,20 +168,6 @@ class SCCProvider(TorrentProvider):  # pylint: disable=too-many-instance-attribu
     def seed_ratio(self):
         return self.ratio
 
-    @staticmethod
-    def _convertSize(size):
-        size, base = size.split()
-        size = float(size)
-        if base in 'KB':
-            size *= 1024 ** 1
-        elif base in 'MB':
-            size *= 1024 ** 2
-        elif base in 'GB':
-            size *= 1024 ** 3
-        elif base in 'TB':
-            size *= 1024 ** 4
-        return long(size)
-
 
 class SCCCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/scenetime.py b/sickbeard/providers/scenetime.py
index 25c3fbfad25c072861692e26cd015152331cf7cb..1d5113835efb5d2462aed9d316dfc8d1500bae12 100644
--- a/sickbeard/providers/scenetime.py
+++ b/sickbeard/providers/scenetime.py
@@ -23,6 +23,7 @@ import urllib
 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
 
 from sickrage.helper.common import try_int
@@ -118,7 +119,9 @@ class SceneTimeProvider(TorrentProvider):
 
                             seeders = try_int(cells[labels.index('Seeders')].get_text(strip=True))
                             leechers = try_int(cells[labels.index('Leechers')].get_text(strip=True))
-                            size = self._convertSize(cells[labels.index('Size')].get_text(strip=True))
+                            torrent_size = cells[labels.index('Size')].get_text()
+
+                            size = convert_size(torrent_size) or -1
 
                         except (AttributeError, TypeError, KeyError, ValueError):
                             continue
@@ -148,26 +151,6 @@ class SceneTimeProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    @staticmethod
-    def _convertSize(size):
-        modifier = size[-2:].upper()
-        size = size[:-2].strip()
-        try:
-            size = float(size)
-            if modifier in 'KB':
-                size *= 1024 ** 1
-            elif modifier in 'MB':
-                size *= 1024 ** 2
-            elif modifier in 'GB':
-                size *= 1024 ** 3
-            elif modifier in 'TB':
-                size *= 1024 ** 4
-            else:
-                raise
-        except Exception:
-            size = -1
-
-        return long(size)
 
 class SceneTimeCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/speedcd.py b/sickbeard/providers/speedcd.py
index 3d1fb437b4be62a8f0f3f2e0681a7fb0cfe6eec2..749fb07fb978d95210454919f3c7dd0010a37bdb 100644
--- a/sickbeard/providers/speedcd.py
+++ b/sickbeard/providers/speedcd.py
@@ -21,6 +21,7 @@ import re
 
 from sickbeard import logger
 from sickbeard import tvcache
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -105,7 +106,9 @@ class SpeedCDProvider(TorrentProvider):
                     download_url = self.urls['download'] % (torrent['id'])
                     seeders = int(torrent['seed'])
                     leechers = int(torrent['leech'])
-                    size = self._convertSize(torrent['size'])
+                    torrent_size = torrent['size']
+
+                    size = convert_size(torrent_size) or -1
 
                     if not all([title, download_url]):
                         continue
@@ -132,27 +135,6 @@ class SpeedCDProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    @staticmethod
-    def _convertSize(size):
-        modifier = size[-2:].upper()
-        size = size[:-2].strip()
-        try:
-            size = float(size)
-            if modifier in 'KB':
-                size *= 1024 ** 1
-            elif modifier in 'MB':
-                size *= 1024 ** 2
-            elif modifier in 'GB':
-                size *= 1024 ** 3
-            elif modifier in 'TB':
-                size *= 1024 ** 4
-            else:
-                raise
-        except Exception:
-            size = -1
-
-        return long(size)
-
 
 class SpeedCDCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/strike.py b/sickbeard/providers/strike.py
index d48b0f9ea96ea9ff15ceaeab364d700c23d146db..af3c34b24772916e76fc839162f9981a2fd3b897 100644
--- a/sickbeard/providers/strike.py
+++ b/sickbeard/providers/strike.py
@@ -19,6 +19,7 @@
 
 from sickbeard import logger
 from sickbeard import tvcache
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -58,7 +59,8 @@ class STRIKEProvider(TorrentProvider):
                     seeders = ('seeds' in item and item['seeds']) or 0
                     leechers = ('leeches' in item and item['leeches']) or 0
                     title = ('torrent_title' in item and item['torrent_title']) or ''
-                    size = ('size' in item and item['size']) or 0
+                    torrent_size = ('size' in item and item['size'])
+                    size = convert_size(torrent_size) or -1
                     download_url = ('magnet_uri' in item and item['magnet_uri']) or ''
 
                     if not all([title, download_url]):
diff --git a/sickbeard/providers/t411.py b/sickbeard/providers/t411.py
index 9ef558461bbd259749e1500bffd3ecb908d0d6ea..ccdc22920367fef51060946f37e7b082683c3c07 100644
--- a/sickbeard/providers/t411.py
+++ b/sickbeard/providers/t411.py
@@ -24,6 +24,7 @@ from requests.auth import AuthBase
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.common import USER_AGENT
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -123,10 +124,11 @@ class T411Provider(TorrentProvider):
                                 if not all([title, download_url]):
                                     continue
 
-                                size = int(torrent['size'])
                                 seeders = int(torrent['seeders'])
                                 leechers = int(torrent['leechers'])
                                 verified = bool(torrent['isVerified'])
+                                torrent_size = torrent['size']
+                                size = convert_size(torrent_size) or -1
 
                                 # Filter unseeded torrent
                                 if seeders < self.minseed or leechers < self.minleech:
diff --git a/sickbeard/providers/thepiratebay.py b/sickbeard/providers/thepiratebay.py
index c2211a622fb7dda3159f6a1ecf03fa259ed9d7b4..c795e2dbaf5b51a9efb4444e81feacb73c6594a5 100644
--- a/sickbeard/providers/thepiratebay.py
+++ b/sickbeard/providers/thepiratebay.py
@@ -23,6 +23,7 @@ from urllib import urlencode
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.common import USER_AGENT
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -94,9 +95,12 @@ class ThePirateBayProvider(TorrentProvider):
                     title = torrent.group('title')
                     download_url = torrent.group('url')
                     # id = int(torrent.group('id'))
-                    size = self._convertSize(torrent.group('size'))
+
                     seeders = int(torrent.group('seeders'))
                     leechers = int(torrent.group('leechers'))
+                    torrent_size = torrent.group('size')
+
+                    size = convert_size(torrent_size) or -1
 
                     if not all([title, download_url]):
                         continue
@@ -126,19 +130,6 @@ class ThePirateBayProvider(TorrentProvider):
 
         return results
 
-    def _convertSize(self, size):
-        size, modifier = size.split('&nbsp;')
-        size = float(size)
-        if modifier in 'KiB':
-            size *= 1024 ** 1
-        elif modifier in 'MiB':
-            size *= 1024 ** 2
-        elif modifier in 'GiB':
-            size *= 1024 ** 3
-        elif modifier in 'TiB':
-            size *= 1024 ** 4
-        return long(size)
-
     def seed_ratio(self):
         return self.ratio
 
diff --git a/sickbeard/providers/torrentbytes.py b/sickbeard/providers/torrentbytes.py
index e22c5eb300f10783ee3bbd232426596813a0e9b9..4a799d2bedc791f27c92afa0d58714780de72f5d 100644
--- a/sickbeard/providers/torrentbytes.py
+++ b/sickbeard/providers/torrentbytes.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
 
 
@@ -106,7 +107,7 @@ class TorrentBytesProvider(TorrentProvider):
 
                         for result in torrent_rows[1:]:
                             cells = result.find_all('td')
-                            size = None
+                            torrent_size = None
                             link = cells[1].find('a', attrs={'class': 'index'})
 
                             full_id = link['href'].replace('details.php?id=', '')
@@ -132,11 +133,7 @@ class TorrentBytesProvider(TorrentProvider):
                                 leechers = int(cells[9].find('span').contents[0])
 
                                 # Need size for failed downloads handling
-                                if size is None:
-                                    if re.match(r'[0-9]+,?\.?[0-9]*[KkMmGg]+[Bb]+', cells[6].text):
-                                        size = self._convertSize(cells[6].text)
-                                        if not size:
-                                            size = -1
+                                torrent_size = cells[6].text if torrent_size is None else torrent_size
 
                             except (AttributeError, TypeError):
                                 continue
@@ -150,6 +147,8 @@ class TorrentBytesProvider(TorrentProvider):
                                     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
 
+                            size = convert_size(torrent_size) or -1
+
                             item = title, download_url, size, seeders, leechers
                             if mode != 'RSS':
                                 logger.log(u"Found result: %s " % title, logger.DEBUG)
@@ -169,20 +168,6 @@ class TorrentBytesProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    def _convertSize(self, sizeString):
-        size = sizeString[:-2]
-        modifier = sizeString[-2:]
-        size = float(size)
-        if modifier in 'KB':
-            size *= 1024 ** 1
-        elif modifier in 'MB':
-            size *= 1024 ** 2
-        elif modifier in 'GB':
-            size *= 1024 ** 3
-        elif modifier in 'TB':
-            size *= 1024 ** 4
-        return long(size)
-
 
 class TorrentBytesCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/torrentleech.py b/sickbeard/providers/torrentleech.py
index b4596a75d53ccd3a25cefd27239e6d704b33a136..b2210ba88520d77165da91006691960cc90c6947 100644
--- a/sickbeard/providers/torrentleech.py
+++ b/sickbeard/providers/torrentleech.py
@@ -23,10 +23,9 @@ import urllib
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.bs4_parser import BS4Parser
+from sickrage.helper.common import try_int, convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
-from sickrage.helper.common import try_int
-
 
 class TorrentLeechProvider(TorrentProvider):
 
@@ -116,7 +115,9 @@ class TorrentLeechProvider(TorrentProvider):
 
                             seeders = try_int(result.find('td', class_='seeders').get_text(strip=True))
                             leechers = try_int(result.find('td', class_='leechers').get_text(strip=True))
-                            size = self._convertSize(result.find_all('td')[labels.index('Size')].get_text(strip=True))
+                            torrent_size = result.find_all('td')[labels.index('Size')].get_text()
+
+                            size = convert_size(torrent_size) or -1
                         except (AttributeError, TypeError, KeyError, ValueError):
                             continue
 
@@ -145,26 +146,6 @@ class TorrentLeechProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    @staticmethod
-    def _convertSize(size):
-        modifier = size[-2:].upper()
-        size = size[:-2].strip()
-        try:
-            size = float(size)
-            if modifier in 'KB':
-                size = size * 1024 ** 1
-            elif modifier in 'MB':
-                size = size * 1024 ** 2
-            elif modifier in 'GB':
-                size = size * 1024 ** 3
-            elif modifier in 'TB':
-                size = size * 1024**4
-            else:
-                raise
-        except Exception:
-            size = -1
-
-        return long(size)
 
 class TorrentLeechCache(tvcache.TVCache):
     def __init__(self, provider_obj):
diff --git a/sickbeard/providers/torrentproject.py b/sickbeard/providers/torrentproject.py
index eedb52d6d7a23ef456417ed65d54aeba1d9f2488..82402022766a2bd89f5441b8cd8c07093b212ab7 100644
--- a/sickbeard/providers/torrentproject.py
+++ b/sickbeard/providers/torrentproject.py
@@ -22,7 +22,7 @@ from urllib import quote_plus
 from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.common import USER_AGENT
-from sickrage.helper.common import try_int
+from sickrage.helper.common import try_int, convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -74,7 +74,8 @@ class TORRENTPROJECTProvider(TorrentProvider):
                         continue
 
                     t_hash = torrents[i]["torrent_hash"]
-                    size = int(torrents[i]["torrent_size"])
+                    torrent_size = torrents[i]["torrent_size"]
+                    size = convert_size(torrent_size) or -1
 
                     try:
                         assert seeders < 10
diff --git a/sickbeard/providers/torrentz.py b/sickbeard/providers/torrentz.py
index 3916ccdc0a4ddc8febdb45df5b5f78c8caca946f..40fdd7c0d50db6615d42d127b98dffb0380e6dbd 100644
--- a/sickbeard/providers/torrentz.py
+++ b/sickbeard/providers/torrentz.py
@@ -24,6 +24,7 @@ from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.common import USER_AGENT
 from sickbeard.bs4_parser import BS4Parser
+from sickrage.helper.common import convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -85,7 +86,8 @@ class TORRENTZProvider(TorrentProvider):
 
                             # TODO: Add method to generic provider for building magnet from hash.
                             download_url = "magnet:?xt=urn:btih:" + t_hash + "&dn=" + title + self._custom_trackers
-                            size, seeders, leechers = self._split_description(item.find('description').text)
+                            torrent_size, seeders, leechers = self._split_description(item.find('description').text)
+                            size = convert_size(torrent_size) or -1
 
                             # Filter unseeded torrent
                             if seeders < self.minseed or leechers < self.minleech:
diff --git a/sickbeard/providers/transmitthenet.py b/sickbeard/providers/transmitthenet.py
index 928ed49db5e625cce5b71c4c50fa9153efa8d49a..174a0ee48fd02366012e97614ce2080a2a38994a 100644
--- a/sickbeard/providers/transmitthenet.py
+++ b/sickbeard/providers/transmitthenet.py
@@ -22,7 +22,7 @@ from sickbeard import logger
 from sickbeard import tvcache
 from sickbeard.bs4_parser import BS4Parser
 from sickrage.helper.exceptions import AuthException
-from sickrage.helper.common import try_int
+from sickrage.helper.common import try_int, convert_size
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
 
@@ -136,7 +136,9 @@ class TransmitTheNetProvider(TorrentProvider):
                             if not title:
                                 title = torrent_row.find('a', onmouseout='return nd();').string
                                 title = title.replace("[", "").replace("]", "").replace("/ ", "")
-                            size = try_int(temp_anchor['data-filesize'])
+
+                            torrent_size = temp_anchor['data-filesize']
+                            size = convert_size(torrent_size) or -1
 
                             temp_anchor = torrent_row.find('span', class_='time').parent.find_next_sibling()
                             seeders = try_int(temp_anchor.text.strip())
diff --git a/sickbeard/providers/tvchaosuk.py b/sickbeard/providers/tvchaosuk.py
index 874f4761a1df8bef587e1a31602c71053968d306..3dd680b592e5d3b007135a214837c88fd990ca58 100644
--- a/sickbeard/providers/tvchaosuk.py
+++ b/sickbeard/providers/tvchaosuk.py
@@ -23,6 +23,7 @@ from sickbeard import tvcache
 from sickbeard import show_name_helpers
 from sickbeard.helpers import sanitizeSceneName
 from sickbeard.bs4_parser import BS4Parser
+from sickrage.helper.common import convert_size
 from sickrage.helper.exceptions import AuthException
 from sickrage.providers.torrent.TorrentProvider import TorrentProvider
 
@@ -180,10 +181,8 @@ class TVChaosUKProvider(TorrentProvider):
 
                             # Strip year from the end or we can't parse it!
                             title = re.sub(r'[\. ]?\(\d{4}\)', '', title)
-                            torrent_size = cells[4].getText().strip()
-                            size = -1
-                            if re.match(r"\d+([,\.]\d+)?\s*[KkMmGgTt]?[Bb]", torrent_size):
-                                size = self._convertSize(torrent_size.rstrip())
+                            torrent_size = cells[4].getText()
+                            size = convert_size(torrent_size) or -1
                             item = title, download_url, size, seeders, leechers
                             if mode != 'RSS':
                                 logger.log(u"Found result: %s " % title, logger.DEBUG)
@@ -203,23 +202,6 @@ class TVChaosUKProvider(TorrentProvider):
     def seed_ratio(self):
         return self.ratio
 
-    def _convertSize(self, sizeString):
-        size = sizeString[:-2].strip()
-        modifier = sizeString[-2:].upper()
-        try:
-            size = float(size)
-            if modifier in 'KB':
-                size *= 1024 ** 1
-            elif modifier in 'MB':
-                size *= 1024 ** 2
-            elif modifier in 'GB':
-                size *= 1024 ** 3
-            elif modifier in 'TB':
-                size *= 1024 ** 4
-        except Exception:
-            size = -1
-        return long(size)
-
 
 class TVChaosUKCache(tvcache.TVCache):
     def __init__(self, provider_obj):