summary refs log tree commit diff
diff options
context:
space:
mode:
authorremitamine <remitamine@gmail.com>2016-05-07 15:12:20 +0100
committerremitamine <remitamine@gmail.com>2016-05-07 15:13:14 +0100
commit3fd6332c056115e5de37b0789d907e9344c2ff5c (patch)
treecd2de582b5517ce1350a0a40c9f1fb856b98ccb4
parent401d147893366a638b64872c4011e73f6f23fc67 (diff)
downloadyoutube-dl-3fd6332c056115e5de37b0789d907e9344c2ff5c.tar.gz
youtube-dl-3fd6332c056115e5de37b0789d907e9344c2ff5c.tar.xz
youtube-dl-3fd6332c056115e5de37b0789d907e9344c2ff5c.zip
[flickr] extract license field(closes #9425)
-rw-r--r--youtube_dl/extractor/flickr.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/youtube_dl/extractor/flickr.py b/youtube_dl/extractor/flickr.py
index 0a3de1498..73ae3adee 100644
--- a/youtube_dl/extractor/flickr.py
+++ b/youtube_dl/extractor/flickr.py
@@ -27,10 +27,24 @@ class FlickrIE(InfoExtractor):
             'comment_count': int,
             'view_count': int,
             'tags': list,
+            'license': 'Attribution-ShareAlike',
         }
     }
-
     _API_BASE_URL = 'https://api.flickr.com/services/rest?'
+    # https://help.yahoo.com/kb/flickr/SLN25525.html
+    _LICENSES = {
+        '0': 'All Rights Reserved',
+        '1': 'Attribution-NonCommercial-ShareAlike',
+        '2': 'Attribution-NonCommercial',
+        '3': 'Attribution-NonCommercial-NoDerivs',
+        '4': 'Attribution',
+        '5': 'Attribution-ShareAlike',
+        '6': 'Attribution-NoDerivs',
+        '7': 'No known copyright restrictions',
+        '8': 'United States government work',
+        '9': 'Public Domain Dedication (CC0)',
+        '10': 'Public Domain Work',
+    }
 
     def _call_api(self, method, video_id, api_key, note, secret=None):
         query = {
@@ -87,7 +101,8 @@ class FlickrIE(InfoExtractor):
                 'uploader': owner.get('realname'),
                 'comment_count': int_or_none(video_info.get('comments', {}).get('_content')),
                 'view_count': int_or_none(video_info.get('views')),
-                'tags': [tag.get('_content') for tag in video_info.get('tags', {}).get('tag', [])]
+                'tags': [tag.get('_content') for tag in video_info.get('tags', {}).get('tag', [])],
+                'license': self._LICENSES.get(video_info.get('license')),
             }
         else:
             raise ExtractorError('not a video', expected=True)