about summary refs log tree commit diff
path: root/youtube_dl/extractor/archiveorg.py
diff options
context:
space:
mode:
authorJohannes Knoedtel <johannes@dev-baron.de>2014-12-28 20:04:21 +0100
committerJohannes Knoedtel <johannes@dev-baron.de>2014-12-28 20:31:25 +0100
commitff7a07d5c4d260a8b27fa7bf523c405725f9cb20 (patch)
treefeaaceeb68c18609b50349abc6bb1664bfbed7fc /youtube_dl/extractor/archiveorg.py
parent5a1840305746b7242c8d8307e945b9f889603a8b (diff)
downloadyoutube-dl-ff7a07d5c4d260a8b27fa7bf523c405725f9cb20.tar.gz
youtube-dl-ff7a07d5c4d260a8b27fa7bf523c405725f9cb20.tar.xz
youtube-dl-ff7a07d5c4d260a8b27fa7bf523c405725f9cb20.zip
[archiveorg] most metadata fields are optional
Example: https://archive.org/details/Cops1922
Diffstat (limited to 'youtube_dl/extractor/archiveorg.py')
-rw-r--r--youtube_dl/extractor/archiveorg.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/youtube_dl/extractor/archiveorg.py b/youtube_dl/extractor/archiveorg.py
index 34ce8429b..ba94b5454 100644
--- a/youtube_dl/extractor/archiveorg.py
+++ b/youtube_dl/extractor/archiveorg.py
@@ -25,6 +25,12 @@ class ArchiveOrgIE(InfoExtractor):
         }
     }
 
+    def get_optional_metadata(self, data, field):
+        try:
+            return data['metadata'][field][0]
+        except KeyError:
+            return None
+
     def _real_extract(self, url):
         mobj = re.match(self._VALID_URL, url)
         video_id = mobj.group('id')
@@ -33,10 +39,12 @@ class ArchiveOrgIE(InfoExtractor):
         json_data = self._download_webpage(json_url, video_id)
         data = json.loads(json_data)
 
-        title = data['metadata']['title'][0]
-        description = data['metadata']['description'][0]
-        uploader = data['metadata']['creator'][0]
-        upload_date = unified_strdate(data['metadata']['date'][0])
+        title = self.get_optional_metadata(data, 'title')
+        description = self.get_optional_metadata(data, 'description')
+        uploader = self.get_optional_metadata(data, 'creator')
+        upload_date = self.get_optional_metadata(data, 'date')
+        if upload_date:
+            upload_date = unified_strdate(upload_date)
 
         formats = [
             {