diff options
Diffstat (limited to 'youtube_dl/extractor/bandcamp.py')
| -rw-r--r-- | youtube_dl/extractor/bandcamp.py | 12 | 
1 files changed, 7 insertions, 5 deletions
| diff --git a/youtube_dl/extractor/bandcamp.py b/youtube_dl/extractor/bandcamp.py index 505877b77..c1ef8051d 100644 --- a/youtube_dl/extractor/bandcamp.py +++ b/youtube_dl/extractor/bandcamp.py @@ -10,6 +10,8 @@ from ..compat import (  )  from ..utils import (      ExtractorError, +    float_or_none, +    int_or_none,  ) @@ -52,11 +54,11 @@ class BandcampIE(InfoExtractor):                      ext, abr_str = format_id.split('-', 1)                      formats.append({                          'format_id': format_id, -                        'url': format_url, +                        'url': self._proto_relative_url(format_url, 'http:'),                          'ext': ext,                          'vcodec': 'none',                          'acodec': ext, -                        'abr': int(abr_str), +                        'abr': int_or_none(abr_str),                      })                  self._sort_formats(formats) @@ -65,7 +67,7 @@ class BandcampIE(InfoExtractor):                      'id': compat_str(data['id']),                      'title': data['title'],                      'formats': formats, -                    'duration': float(data['duration']), +                    'duration': float_or_none(data.get('duration')),                  }              else:                  raise ExtractorError('No free songs found') @@ -93,8 +95,8 @@ class BandcampIE(InfoExtractor):          final_url_webpage = self._download_webpage(request_url, video_id, 'Requesting download url')          # If we could correctly generate the .rand field the url would be          # in the "download_url" key -        final_url = self._search_regex( -            r'"retry_url":"(.*?)"', final_url_webpage, 'final video URL') +        final_url = self._proto_relative_url(self._search_regex( +            r'"retry_url":"(.+?)"', final_url_webpage, 'final video URL'), 'http:')          return {              'id': video_id, | 
