youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 0fa629d05bb521133f808b373fd92c9835275e48
parent 5a1840305746b7242c8d8307e945b9f889603a8b
Author: Sergey M <dstftw@gmail.com>
Date:   Mon, 29 Dec 2014 01:53:59 +0600

Merge pull request #4590 from derrotebaron/master

[archiveorg] most metadata fields are optional
Diffstat:
Myoutube_dl/extractor/archiveorg.py | 16++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)

diff --git 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 = [ {