[utils] Introduce parse_bitrate
authorSergey M․ <dstftw@gmail.com>
Sun, 17 Mar 2019 02:07:47 +0000 (09:07 +0700)
committerSergey M․ <dstftw@gmail.com>
Sun, 17 Mar 2019 02:07:47 +0000 (09:07 +0700)
test/test_utils.py
youtube_dl/utils.py

index 409482c3b7acd431c99457628081bc12b16541fb..acd994bd7966dadf7732712d13109f2125266270 100644 (file)
@@ -55,6 +55,7 @@ from youtube_dl.utils import (
     parse_count,
     parse_iso8601,
     parse_resolution,
+    parse_bitrate,
     pkcs1pad,
     read_batch_urls,
     sanitize_filename,
@@ -1030,6 +1031,13 @@ class TestUtil(unittest.TestCase):
         self.assertEqual(parse_resolution('4k'), {'height': 2160})
         self.assertEqual(parse_resolution('8K'), {'height': 4320})
 
+    def test_parse_bitrate(self):
+        self.assertEqual(parse_bitrate(None), None)
+        self.assertEqual(parse_bitrate(''), None)
+        self.assertEqual(parse_bitrate('300kbps'), 300)
+        self.assertEqual(parse_bitrate('1500kbps'), 1500)
+        self.assertEqual(parse_bitrate('300 kbps'), 300)
+
     def test_version_tuple(self):
         self.assertEqual(version_tuple('1'), (1,))
         self.assertEqual(version_tuple('10.23.344'), (10, 23, 344))
index 630dab8eb391d35114776ee7ca89dac5368c187b..f2726a5799c981742b0b45e101ae976ad8ea1ed9 100644 (file)
@@ -1798,6 +1798,14 @@ def parse_resolution(s):
     return {}
 
 
+def parse_bitrate(s):
+    if not isinstance(s, compat_str):
+        return
+    mobj = re.search(r'\b(\d+)\s*kbps', s)
+    if mobj:
+        return int(mobj.group(1))
+
+
 def month_by_name(name, lang='en'):
     """ Return the number of a month by (locale-independently) English name """