Advertisement
tastypear

虾米试听获取

Apr 30th, 2012
586
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.41 KB | None | 0 0
  1. from urllib2 import urlopen
  2.  
  3. #method 1
  4. def getDownUrl(id):
  5.     #get location #xml
  6.     location = urlopen("http://www.xiami.com/widget/xml-single/sid/"+repr(id)).read()
  7.     begin = location.index("<location>")+19
  8.     end = location.index("</location>")-3
  9.     location = location[begin:end]
  10.     #ready to decode
  11.     List = []
  12.     result = ""
  13.     col = int(location[0])
  14.     location = location[1:]
  15.     pattLen = len(location) / col
  16.     mod = len(location) % col
  17.     #enjoy my terrible indices
  18.     for i in range(0,col):
  19.         List.append(location[:pattLen])
  20.         if mod != 0:
  21.             List[i] += location[pattLen]
  22.             mod -=1
  23.         location = location[len(List[i]):]
  24.         i+=1
  25.     #rebuild the download link
  26.     for i in range(0,pattLen+1):
  27.         for j in range(0,col):
  28.             if i<len(List[j]):
  29.                 result += List[j][i]
  30.                 j +=1
  31.         i+=1
  32.     #some strange patches
  33.     return result.replace("%5E","0").replace("%3A",":").replace("%2F","/").replace("%2520"," ")
  34.  
  35. #method 2
  36. def getDownloadUrl(id):
  37.     location = urlopen("http://www.xiami.com/app/iphone/song/id/"+repr(id)).read() #android is accepted as well #json
  38.     begin = location.index("location")+11
  39.     end = location.index("low_size")-3
  40.     result = location[begin:end].replace("\\","")
  41.     return result
  42.  
  43. id = 1769629542 #Good???! T-Pistonz+KMC
  44. print "method 2"
  45. print(getDownloadUrl(id))
  46. print "method 1"
  47. print(getDownUrl(id))
  48.  
  49. #china ip is NOT necessary
  50. '''
  51. method 2
  52. http://f3.xiami.net/62500/389998/01 1769629542_1437588.mp3
  53. method 1
  54. http://f3.xiami.net/62500/389998/01 1769629542_1437588.mp3
  55. '''
  56.  
  57. #other api list #found in xiami.apk
  58. '''
  59. url_action_fav = "http://www.xiami.com/app/android/fav?id={id}&type={type}";
  60. url_action_unfav = "http://www.xiami.com/app/android/unfav?id={id}&type={type}";
  61. url_album = "http://www.xiami.com/app/android/album?id={id}&uid={uid}";
  62. url_artist = "http://www.xiami.com/app/android/artist?id={id}";
  63. url_artist_albums = "http://www.xiami.com/app/android/artist-albums?id={id}&page={page}";
  64. url_artist_radio = "http://www.xiami.com/app/android/radio-artist?id={id}";
  65. url_artist_top_song = "http://www.xiami.com/app/android/artist-topsongs?id={id}";
  66. url_artsit_similars = "http://www.xiami.com/app/android/artist-similar?id={id}";
  67. url_collect = "http://www.xiami.com/app/android/collect?id={id}&uid={uid}";
  68. url_grade = "http://www.xiami.com/app/android/grade?id={id}&grade={grade}";
  69. url_lib_albums = "http://www.xiami.com/app/android/lib-albums?uid={uid}&page={page}";
  70. url_lib_artists = "http://www.xiami.com/app/android/lib-artists?uid={uid}&page={page}";
  71. url_lib_collects = "http://www.xiami.com/app/android/lib-collects?uid={uid}&page={page}";
  72. url_lib_songs = "http://www.xiami.com/app/android/lib-songs?uid={uid}&page={page}";
  73. url_myplaylist = "http://www.xiami.com/app/android/myplaylist?uid={uid}";
  74. url_myradiosongs = "http://www.xiami.com/app/android/lib-rnd?uid={uid}";
  75. url_playlog = "http://www.xiami.com/app/android/playlog?id={id}&uid={uid}";
  76. url_push_songs = "http://www.xiami.com/app/android/push-songs?uid={uid}&deviceid={deviceid}";
  77. url_radio = "http://www.xiami.com/app/android/radio?id={id}&uid={uid}";
  78. url_radio_categories = "http://www.xiami.com/app/android/radio-category";
  79. url_radio_similar = "http://www.xiami.com/app/android/radio-similar?id={id}&uid={uid}";
  80. url_rndsongs = "http://www.xiami.com/app/android/rnd?uid={uid}";
  81. url_search_all = "http://www.xiami.com/app/android/searchv1?key={key}";
  82. url_search_parts = "http://www.xiami.com/app/android/search-part?key={key}&type={type}&page={page}";
  83. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement