[dailymotion] Extract view count (#1895)
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Fri, 6 Dec 2013 12:36:36 +0000 (13:36 +0100)
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Fri, 6 Dec 2013 12:36:36 +0000 (13:36 +0100)
test/test_utils.py
youtube_dl/extractor/dailymotion.py
youtube_dl/utils.py

index e9e590e749f131a0950c79bcf4fee1e9fb9004c2..0fa66beecd3f8f82b599704af260ca3d0aa0298d 100644 (file)
@@ -26,6 +26,7 @@ from youtube_dl.utils import (
     unsmuggle_url,
     shell_quote,
     encodeFilename,
+    str_to_int,
 )
 
 if sys.version_info < (3, 0):
@@ -176,6 +177,10 @@ class TestUtil(unittest.TestCase):
         args = ['ffmpeg', '-i', encodeFilename(u'ñ€ß\'.mp4')]
         self.assertEqual(shell_quote(args), u"""ffmpeg -i 'ñ€ß'"'"'.mp4'""")
 
+    def test_str_to_int(self):
+        self.assertEqual(str_to_int('123,456'), 123456)
+        self.assertEqual(str_to_int('123.456'), 123456)
+
 
 if __name__ == '__main__':
     unittest.main()
index 71f5e03eea393b7733bf3bfeb4f2eeea5b21eb85..3756cf76525a135b35b0260f0209cded74858787 100644 (file)
@@ -11,6 +11,7 @@ from ..utils import (
     get_element_by_attribute,
     get_element_by_id,
     orderedSet,
+    str_to_int,
 
     ExtractorError,
 )
@@ -146,6 +147,9 @@ class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
             self._list_available_subtitles(video_id, webpage)
             return
 
+        view_count = str_to_int(self._search_regex(
+            r'video_views_value[^>]+>([\d\.]+)<', webpage, u'view count'))
+
         return {
             'id':       video_id,
             'formats': formats,
@@ -155,6 +159,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor, SubtitlesInfoExtractor):
             'subtitles':    video_subtitles,
             'thumbnail': info['thumbnail_url'],
             'age_limit': age_limit,
+            'view_count': view_count,
         }
 
     def _get_available_subtitles(self, video_id, webpage):
index 77609f7ca6ed3c887659f8f4bc01144073ae153e..7b58788309d62cea379336861bbbee525be19075 100644 (file)
@@ -1020,3 +1020,7 @@ def format_bytes(bytes):
     suffix = [u'B', u'KiB', u'MiB', u'GiB', u'TiB', u'PiB', u'EiB', u'ZiB', u'YiB'][exponent]
     converted = float(bytes) / float(1024 ** exponent)
     return u'%.2f%s' % (converted, suffix)
+
+def str_to_int(int_str):
+    int_str = re.sub(r'[,\.]', u'', int_str)
+    return int(int_str)