summary refs log tree commit diff
diff options
context:
space:
mode:
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-12-06 13:36:36 +0100
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2013-12-06 13:36:36 +0100
commitf53c966a73df42a9a949912ef8ab99a64fb99466 (patch)
treecad9af28cebceabf24ef90085f31b0942e4773f5
parent336c3a69bd198130e2f65f14dfc83383fec7c5e2 (diff)
downloadyoutube-dl-f53c966a73df42a9a949912ef8ab99a64fb99466.tar.gz
youtube-dl-f53c966a73df42a9a949912ef8ab99a64fb99466.tar.xz
youtube-dl-f53c966a73df42a9a949912ef8ab99a64fb99466.zip
[dailymotion] Extract view count (#1895)
-rw-r--r--test/test_utils.py5
-rw-r--r--youtube_dl/extractor/dailymotion.py5
-rw-r--r--youtube_dl/utils.py4
3 files changed, 14 insertions, 0 deletions
diff --git a/test/test_utils.py b/test/test_utils.py
index e9e590e74..0fa66beec 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -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()
diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py
index 71f5e03ee..3756cf765 100644
--- a/youtube_dl/extractor/dailymotion.py
+++ b/youtube_dl/extractor/dailymotion.py
@@ -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):
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 77609f7ca..7b5878830 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -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)