@ -20,28 +20,6 @@ class BandcampIE(InfoExtractor):
u " title " : u " youtube-dl test song \" ' / \\ \u00e4 \u21ad "
} ,
u ' skip ' : u ' There is a limit of 200 free downloads / month for the test song '
} , {
u ' url ' : u ' http://blazo.bandcamp.com/album/jazz-format-mixtape-vol-1 ' ,
u ' playlist ' : [
{
u ' file ' : u ' 1353101989.mp3 ' ,
u ' md5 ' : u ' 39bc1eded3476e927c724321ddf116cf ' ,
u ' info_dict ' : {
u ' title ' : u ' Intro ' ,
}
} ,
{
u ' file ' : u ' 38097443.mp3 ' ,
u ' md5 ' : u ' 1a2c32e2691474643e912cc6cd4bffaa ' ,
u ' info_dict ' : {
u ' title ' : u ' Kero One - Keep It Alive (Blazo remix) ' ,
}
} ,
] ,
u ' params ' : {
u ' playlistend ' : 2
} ,
u ' skip ' : u ' Bancamp imposes download limits. See test_playlists:test_bandcamp_album for the playlist test '
} ]
def _real_extract ( self , url ) :
@ -63,13 +41,11 @@ class BandcampIE(InfoExtractor):
' url ' : format_url ,
' ext ' : format_id . partition ( ' - ' ) [ 0 ]
} for format_id , format_url in sorted ( d [ ' file ' ] . items ( ) ) ]
entries . append ( {
return {
' id ' : compat_str ( d [ ' id ' ] ) ,
' title ' : d [ ' title ' ] ,
' formats ' : formats ,
} )
return self . playlist_result ( entries , title , title )
}
else :
raise ExtractorError ( u ' No free songs found ' )
@ -112,6 +88,30 @@ class BandcampAlbumIE(InfoExtractor):
IE_NAME = u ' Bandcamp:album '
_VALID_URL = r ' http://.*? \ .bandcamp \ .com/album/(?P<title>.*) '
_TEST = {
u ' url ' : u ' http://blazo.bandcamp.com/album/jazz-format-mixtape-vol-1 ' ,
u ' playlist ' : [
{
u ' file ' : u ' 1353101989.mp3 ' ,
u ' md5 ' : u ' 39bc1eded3476e927c724321ddf116cf ' ,
u ' info_dict ' : {
u ' title ' : u ' Intro ' ,
}
} ,
{
u ' file ' : u ' 38097443.mp3 ' ,
u ' md5 ' : u ' 1a2c32e2691474643e912cc6cd4bffaa ' ,
u ' info_dict ' : {
u ' title ' : u ' Kero One - Keep It Alive (Blazo remix) ' ,
}
} ,
] ,
u ' params ' : {
u ' playlistend ' : 2
} ,
u ' skip ' : u ' Bancamp imposes download limits. See test_playlists:test_bandcamp_album for the playlist test '
}
def _real_extract ( self , url ) :
mobj = re . match ( self . _VALID_URL , url )
title = mobj . group ( ' title ' )