Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.27 KB | None | 0 0
  1. import requests, os, tqdm
  2. from getpass import getpass
  3.  
  4. APP_ID = 2685278
  5. APP_SECRET = "hHbJug59sKJie78wjrH8"
  6. DOWNLOAD_FOLDER = "/Users/riza/Music/"
  7.  
  8. class VKMusicDownloader(object):
  9.  def __init__(self, login, password):
  10.  
  11.  
  12.   if os.path.exists(".token"):
  13.  
  14.    storage = open(".token").read().split("\n")
  15.  
  16.    self.token = storage[0]
  17.    self.userid = int(storage[1])
  18.  
  19.    return
  20.  
  21.   response = self.__request__("https://oauth.vk.com/token?grant_type=password&client_id={0}&client_secret={1}&username={2}&password={3}&v=5.71&scope=audio".format(APP_ID, APP_SECRET, login, password)).json()
  22.   print(response)
  23.   self.token = response["access_token"]
  24.   self.userid = response["user_id"]
  25.  
  26.   self.token = self.__request__("https://api.vk.com/method/auth.refreshToken?access_token={0}&receipt=dMjd6UruIpk%3AAPA91bHuDjuI_IpvRd6rA1ocitbkR0iqVi--ytx6c7fbH2smVoNr5rVR2NHEoYuDFdObtwzOl3QuUvAEyaDRyDAi9-G4Qw4OxXFJ7xWajf18OVO-TT4ATuAWsvuy62Kvs9cJLrM4Yit2bcfteFIFFbAlCOzBj0gNmg&v=5.71".format(self.token)).json()["response"]["token"]
  27.   open(".token", "w").write(self.token + "\n" + str(self.userid))
  28.  
  29.  
  30.  def __request__(self, url):
  31.   return requests.get(url, headers={"User-Agent": "KateMobileAndroid/51.2 lite-440 (Android 7.1.2; SDK 25; arm64-v8a; Xiaomi Redmi Note 4; en)"})
  32.  
  33.  def get_audio(self):
  34.   response = self.__request__("https://api.vk.com/method/audio.get?access_token={0}&owner_id={1}&v=5.71".format(self.token, self.userid)).json()
  35.  
  36.   return response["response"]["items"]
  37.  
  38. login = password = ""
  39.  
  40. if not os.path.exists(".token"):
  41.  login = input("Введите Логин: ")
  42.  password = getpass("Введите Пароль: ")
  43.  
  44. vk = VKMusicDownloader(login, password)
  45. music = vk.get_audio()
  46.  
  47. for k, v in enumerate(music):
  48.  print(str(k+1) + ") " + v["artist"] + " - " + v["title"])
  49.  
  50. mid = int(input("Введите номер композиции: "))
  51. to_download = music[mid-1]
  52.  
  53. f = open(DOWNLOAD_FOLDER + to_download["artist"].replace("/", " ") + " - " + to_download["title"].replace("/", " ") + ".mp3", "wb")
  54. response = requests.get(to_download["url"], stream=True)
  55. for chunk in tqdm.tqdm(response.iter_content(1024), desc="Скачиваю {0} ...".format(to_download["artist"] + " - " + to_download["title"])):
  56.  f.write(chunk)
  57. f.close()
  58. print("Скачано! :)")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement