diff options
| -rw-r--r-- | test/test_utils.py | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/drtv.py | 7 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 4 | 
3 files changed, 5 insertions, 7 deletions
diff --git a/test/test_utils.py b/test/test_utils.py index febba411e..0b31d1a39 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -289,6 +289,7 @@ class TestUtil(unittest.TestCase):          self.assertEqual(parse_iso8601('2014-03-23T23:04:26+0100'), 1395612266)          self.assertEqual(parse_iso8601('2014-03-23T22:04:26+0000'), 1395612266)          self.assertEqual(parse_iso8601('2014-03-23T22:04:26Z'), 1395612266) +        self.assertEqual(parse_iso8601('2014-03-23T22:04:26.1234Z'), 1395612266)      def test_strip_jsonp(self):          stripped = strip_jsonp('cb ([ {"id":"532cb",\n\n\n"x":\n3}\n]\n);') diff --git a/youtube_dl/extractor/drtv.py b/youtube_dl/extractor/drtv.py index 9d6ce1f48..93b3c9f36 100644 --- a/youtube_dl/extractor/drtv.py +++ b/youtube_dl/extractor/drtv.py @@ -1,7 +1,5 @@  from __future__ import unicode_literals -import re -  from .subtitles import SubtitlesInfoExtractor  from .common import ExtractorError  from ..utils import parse_iso8601 @@ -25,8 +23,7 @@ class DRTVIE(SubtitlesInfoExtractor):      }      def _real_extract(self, url): -        mobj = re.match(self._VALID_URL, url) -        video_id = mobj.group('id') +        video_id = self._match_id(url)          programcard = self._download_json(              'http://www.dr.dk/mu/programcard/expanded/%s' % video_id, video_id, 'Downloading video JSON') @@ -35,7 +32,7 @@ class DRTVIE(SubtitlesInfoExtractor):          title = data['Title']          description = data['Description'] -        timestamp = parse_iso8601(data['CreatedTime'][:-5]) +        timestamp = parse_iso8601(data['CreatedTime'])          thumbnail = None          duration = None diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 6c0c39ca5..2864e5142 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -925,7 +925,7 @@ def parse_iso8601(date_str, delimiter='T'):          return None      m = re.search( -        r'Z$| ?(?P<sign>\+|-)(?P<hours>[0-9]{2}):?(?P<minutes>[0-9]{2})$', +        r'(\.[0-9]+)?(?:Z$| ?(?P<sign>\+|-)(?P<hours>[0-9]{2}):?(?P<minutes>[0-9]{2})$)',          date_str)      if not m:          timezone = datetime.timedelta() @@ -938,7 +938,7 @@ def parse_iso8601(date_str, delimiter='T'):              timezone = datetime.timedelta(                  hours=sign * int(m.group('hours')),                  minutes=sign * int(m.group('minutes'))) -    date_format =  '%Y-%m-%d{0}%H:%M:%S'.format(delimiter) +    date_format = '%Y-%m-%d{0}%H:%M:%S'.format(delimiter)      dt = datetime.datetime.strptime(date_str, date_format) - timezone      return calendar.timegm(dt.timetuple())  | 
