[bandcamp] raise ExtractorError when track not streamable (#9465)
* [bandcamp] raise ExtractorError when track not streamable * [bandcamp] update md5 for second test * don't rely on json-data, but just check for 'file' * don't rely on presence of 'file'
This commit is contained in:
		@@ -29,7 +29,7 @@ class BandcampIE(InfoExtractor):
 | 
				
			|||||||
        '_skip': 'There is a limit of 200 free downloads / month for the test song'
 | 
					        '_skip': 'There is a limit of 200 free downloads / month for the test song'
 | 
				
			||||||
    }, {
 | 
					    }, {
 | 
				
			||||||
        'url': 'http://benprunty.bandcamp.com/track/lanius-battle',
 | 
					        'url': 'http://benprunty.bandcamp.com/track/lanius-battle',
 | 
				
			||||||
        'md5': '2b68e5851514c20efdff2afc5603b8b4',
 | 
					        'md5': '73d0b3171568232574e45652f8720b5c',
 | 
				
			||||||
        'info_dict': {
 | 
					        'info_dict': {
 | 
				
			||||||
            'id': '2650410135',
 | 
					            'id': '2650410135',
 | 
				
			||||||
            'ext': 'mp3',
 | 
					            'ext': 'mp3',
 | 
				
			||||||
@@ -48,6 +48,10 @@ class BandcampIE(InfoExtractor):
 | 
				
			|||||||
            if m_trackinfo:
 | 
					            if m_trackinfo:
 | 
				
			||||||
                json_code = m_trackinfo.group(1)
 | 
					                json_code = m_trackinfo.group(1)
 | 
				
			||||||
                data = json.loads(json_code)[0]
 | 
					                data = json.loads(json_code)[0]
 | 
				
			||||||
 | 
					                track_id = compat_str(data['id'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if not data.get('file'):
 | 
				
			||||||
 | 
					                    raise ExtractorError('Not streamable', video_id=track_id, expected=True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                formats = []
 | 
					                formats = []
 | 
				
			||||||
                for format_id, format_url in data['file'].items():
 | 
					                for format_id, format_url in data['file'].items():
 | 
				
			||||||
@@ -64,7 +68,7 @@ class BandcampIE(InfoExtractor):
 | 
				
			|||||||
                self._sort_formats(formats)
 | 
					                self._sort_formats(formats)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    'id': compat_str(data['id']),
 | 
					                    'id': track_id,
 | 
				
			||||||
                    'title': data['title'],
 | 
					                    'title': data['title'],
 | 
				
			||||||
                    'formats': formats,
 | 
					                    'formats': formats,
 | 
				
			||||||
                    'duration': float_or_none(data.get('duration')),
 | 
					                    'duration': float_or_none(data.get('duration')),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user