Browse Source

[acast] Fix broken audio URL and timestamp extraction

Before first bling was used now we look for the first bling with
type BlingAudio.

Before publishingDate was a ms unix timestamp now it is iso8601.
Mattias Wadman 8 years ago
parent
commit
12da830993
1 changed files with 5 additions and 3 deletions
  1. 5 3
      youtube_dl/extractor/acast.py

+ 5 - 3
youtube_dl/extractor/acast.py

@@ -8,6 +8,7 @@ from .common import InfoExtractor
 from ..compat import compat_str
 from ..compat import compat_str
 from ..utils import (
 from ..utils import (
     int_or_none,
     int_or_none,
+    parse_iso8601,
     OnDemandPagedList,
     OnDemandPagedList,
 )
 )
 
 
@@ -22,7 +23,8 @@ class ACastIE(InfoExtractor):
             'id': '57de3baa-4bb0-487e-9418-2692c1277a34',
             'id': '57de3baa-4bb0-487e-9418-2692c1277a34',
             'ext': 'mp3',
             'ext': 'mp3',
             'title': '"Where Are You?": Taipei 101, Taiwan',
             'title': '"Where Are You?": Taipei 101, Taiwan',
-            'timestamp': 1196172000000,
+            'timestamp': 1196172000,
+            'upload_date': '20071127',
             'description': 'md5:a0b4ef3634e63866b542e5b1199a1a0e',
             'description': 'md5:a0b4ef3634e63866b542e5b1199a1a0e',
             'duration': 211,
             'duration': 211,
         }
         }
@@ -35,11 +37,11 @@ class ACastIE(InfoExtractor):
         return {
         return {
             'id': compat_str(cast_data['id']),
             'id': compat_str(cast_data['id']),
             'display_id': display_id,
             'display_id': display_id,
-            'url': cast_data['blings'][0]['audio'],
+            'url': [b['audio'] for b in cast_data['blings'] if b['type'] == 'BlingAudio'][0],
             'title': cast_data['name'],
             'title': cast_data['name'],
             'description': cast_data.get('description'),
             'description': cast_data.get('description'),
             'thumbnail': cast_data.get('image'),
             'thumbnail': cast_data.get('image'),
-            'timestamp': int_or_none(cast_data.get('publishingDate')),
+            'timestamp': parse_iso8601(cast_data.get('publishingDate')),
             'duration': int_or_none(cast_data.get('duration')),
             'duration': int_or_none(cast_data.get('duration')),
         }
         }