diff --git a/gui/slick/images/network/cbs all access.png b/gui/slick/images/network/cbs all access.png
new file mode 100644
index 0000000000000000000000000000000000000000..190598f6f2f0f753400e2e0a55d6fd0ff8369fa5
Binary files /dev/null and b/gui/slick/images/network/cbs all access.png differ
diff --git a/runscripts/init.openbsd b/runscripts/init.openbsd
new file mode 100644
index 0000000000000000000000000000000000000000..9d96520ab87253f96f6d4e9ad937f84ba76df81e
--- /dev/null
+++ b/runscripts/init.openbsd
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+daemon_home="/path/to/sickrage_homedir"
+daemon_user="sickrage"
+daemon="/usr/local/bin/python2.7 $daemon_home/SickRage/SickBeard.py"
+daemon_flags="-q --daemon --nolaunch --datadir=$daemon_home"
+daemon_timeout=5
+
+. /etc/rc.d/rc.subr
+
+rc_reload=NO
+
+rc_cmd $1
diff --git a/sickbeard/common.py b/sickbeard/common.py
index b113ddd9f491d1b3786a2bb25d3fc72331a0e735..4bcb3e598474997394daaf8d686d1076df763d7e 100644
--- a/sickbeard/common.py
+++ b/sickbeard/common.py
@@ -332,31 +332,31 @@ class Quality(object):
             return Quality.UNKNOWN if result is None else result
 
         # Is it UHD?
-        if ep.vres in [2160, 4320] and ep.scan == 'p':
+        if ep.vres in {2160, 4320} and ep.scan == 'p':
             # BluRay
             full_res = (ep.vres == 4320)
             if ep.avc and ep.bluray:
-                result = Quality.UHD_4K_BLURAY if not full_res else Quality.UHD_8K_BLURAY
+                result = (Quality.UHD_4K_BLURAY, Quality.UHD_8K_BLURAY)[full_res]
             # WEB-DL
-            elif (ep.avc and ep.itunes) or ep.web:
-                result = Quality.UHD_4K_WEBDL if not full_res else Quality.UHD_8K_WEBDL
+            elif (ep.avc and (ep.itunes or ep.amazon or ep.netflix)) or ep.web:
+                result = (Quality.UHD_4K_WEBDL, Quality.UHD_8K_WEBDL)[full_res]
             # HDTV
             elif ep.avc and ep.tv == 'hd':
-                result = Quality.UHD_4K_TV if not full_res else Quality.UHD_8K_TV
+                result = (Quality.UHD_4K_TV, Quality.UHD_8K_TV)[full_res]
 
         # Is it HD?
-        elif ep.vres in [1080, 720]:
+        elif ep.vres in {1080, 720}:
             if ep.scan == 'p':
                 # BluRay
                 full_res = (ep.vres == 1080)
                 if ep.avc and (ep.bluray or ep.hddvd):
-                    result = Quality.FULLHDBLURAY if full_res else Quality.HDBLURAY
+                    result = (Quality.HDBLURAY, Quality.FULLHDBLURAY)[full_res]
                 # WEB-DL
-                elif (ep.avc and ep.itunes) or ep.web:
-                    result = Quality.FULLHDWEBDL if full_res else Quality.HDWEBDL
+                elif (ep.avc and (ep.itunes or ep.amazon or ep.netflix)) or ep.web:
+                    result = (Quality.HDWEBDL, Quality.FULLHDWEBDL)[full_res]
                 # HDTV
                 elif ep.avc and ep.tv == 'hd':
-                    result = Quality.FULLHDTV if full_res else Quality.HDTV #1080 HDTV h264
+                    result = (Quality.HDTV, Quality.FULLHDTV)[full_res]  # 1080 HDTV h264
                 # MPEG2 encoded
                 elif all([ep.vres == 1080, ep.tv == 'hd', ep.mpeg]):
                     result = Quality.RAWHDTV
@@ -364,6 +364,8 @@ class Quality(object):
                     result = Quality.RAWHDTV
             elif (ep.res == '1080i') and ep.tv == 'hd' and (ep.mpeg or (ep.raw and ep.avc_non_free)):
                 result = Quality.RAWHDTV
+        elif not ep.vres and ep.netflix or ep.amazon or ep.itunes:
+            result = Quality.HDWEBDL
         elif ep.hrws:
             result = Quality.HDTV
 
diff --git a/sickrage/recompiled/tags.py b/sickrage/recompiled/tags.py
index fd5fde974379f1819a3a0a48a8ab1c585e337835..00f09acdac13daca5fbcedf33ffdc5393b5d3926 100644
--- a/sickrage/recompiled/tags.py
+++ b/sickrage/recompiled/tags.py
@@ -16,11 +16,12 @@ dvd = re.compile(r'(?P<hd>hd)?dvd(?P<rip>rip|mux)?', re.I)
 web = re.compile(r'(web(?P<type>rip|mux|hd|.?dl|\b))', re.I)
 bluray = re.compile(r'(blue?-?ray|b[rd](?:rip|mux))', re.I)
 sat = re.compile(r'(dsr|satrip)', re.I)
-itunes = re.compile(r'(itunes)', re.I)
-netflix = re.compile(r'netflix(hd|uhd)', re.I)
+itunes = re.compile(r'itunes(hd|uhd)?', re.I)
+netflix = re.compile(r'netflix(hd|uhd)?', re.I)
+amazon = re.compile(r'(amzn|amazon)(hd|uhd)?', re.I)
 
 # Codecs
-avc = re.compile(r'([xh].?26[45])', re.I)
+avc = re.compile(r'([xh].?26[45]|AVC)', re.I)
 xvid = re.compile(r'(xvid|divx)', re.I)
 mpeg = re.compile(r'(mpeg-?2)', re.I)
 
diff --git a/sickrage/tagger/episode.py b/sickrage/tagger/episode.py
index 7f881fbbbe58222c801f930b145a8b7ede41e98b..0bc860a17f258a62e34716737ad82d2b997d2afc 100644
--- a/sickrage/tagger/episode.py
+++ b/sickrage/tagger/episode.py
@@ -30,6 +30,7 @@ class EpisodeTags(object):
             'mpeg': tags.mpeg,
             'xvid': tags.xvid,
             'netflix': tags.netflix,
+            'amazon': tags.amazon,
         }
 
     def _get_match_obj(self, attr, regex=None, flags=0):
@@ -277,3 +278,13 @@ class EpisodeTags(object):
         attr = 'netflix'
         match = self._get_match_obj(attr)
         return '' if not match else match.group()
+
+    @property
+    def amazon(self):
+        """
+        Amazon tage found in name
+        :return: an empty string if not found
+        """
+        attr = 'amazon'
+        match = self._get_match_obj(attr)
+        return '' if not match else match.group()
diff --git a/tests/common_tests.py b/tests/common_tests.py
index e93df80f65d9f1313ce388e8efa7f81f3bc5c05a..7e90ed2674e58de46edf36f0fc7eaa871f35944f 100644
--- a/tests/common_tests.py
+++ b/tests/common_tests.py
@@ -98,7 +98,28 @@ class QualityStringTests(unittest.TestCase):
             "Test Show S01E02 720p WEB-DL AAC2 0 H 264-GROUP",
             "Test_Show.S01E02_720p_WEB-DL_AAC2.0_H264-GROUP",
             "Test.Show.S01E02.720p.WEB-DL.AAC2.0.H264-GROUP",
-            "Test.Show.S01E02.720p.iTunes.Rip.H264.AAC-GROUP"
+            "Test.Show.S01E02.720p.iTunes.Rip.H264.AAC-GROUP",
+            "Test.Show.S01E02.Episode.Name.Itunes.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.ItunesHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.ItunesUHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.720p.Itunes.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.720p.ItunesHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.720p.ItunesUHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.AMZN.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.Amazon.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.AmazonHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.AmazonUHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.720p.AMZN.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.720p.Amazon.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.720p.AmazonHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.720p.AmazonUHD.WEB-DL.x264",
+
+            # German dubs
+            "Test.Show.S01E02.Episode.Name.German.DD51.Synced.DL.iTunesHD.AVC",
+            "Test.Show.S01E02.Episode.Name.German.DD51.Synced.DL.AmazonHD.x264",
+            "Test.Show.S01E02.Episode.Name.German.Dubbed.DL.iTunesHD.x264",
+            "Test.Show.S01E02.Episode.Name.German.DD51.DL.NetflixHD.x264",
+            "Test.Show.S01E02.Episode.Name.German.DD51.DL.NetflixUHD.x264"
         ],
         'full_hd_web_dl': [
             "Test.Show.S01E02.1080p.WEB-DL-GROUP",
@@ -107,7 +128,21 @@ class QualityStringTests(unittest.TestCase):
             "Test.Show.S01E02.WEBRip.1080p.H264.AAC.2.0-GROUP",
             "Test.Show.S01E02.1080p.iTunes.H.264.AAC-GROUP",
             "Test Show S01E02 1080p iTunes H 264 AAC-GROUP",
-            "Test_Show_S01E02_1080p_iTunes_H_264_AAC-GROUP"
+            "Test_Show_S01E02_1080p_iTunes_H_264_AAC-GROUP",
+            "Test.Show.S01E02.Episode.Name.1080p.Itunes.WEB-DL.x264"
+            "Test.Show.S01E02.Episode.Name.1080p.ItunesHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.1080p.ItunesUHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.1080p.AMZN.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.1080p.Amazon.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.1080p.AmazonUHD.WEB-DL.x264",
+            "Test.Show.S01E02.Episode.Name.1080p.AmazonHD.WEB-DL.x264",
+
+            # German dubs
+            "Test.Show.S01E02.Episode.Name.German.DD51.Synced.DL.1080p.iTunesHD.AVC",
+            "Test.Show.S01E02.Episode.Name.German.DD51.Synced.DL.1080p.AmazonHD.x264",
+            "Test.Show.S01E02.Episode.Name.German.Dubbed.DL.1080p.iTunesHD.x264",
+            "Test.Show.S01E02.Episode.Name.German.DD51.DL.1080p.NetflixHD.x264",
+            "Test.Show.S01E02.Episode.Name.German.DD51.DL.1080p.NetflixUHD.x264"
         ],
         'hd_bluray': [
             "Test.Show.S01E02.720p.BluRay.x264-GROUP",