Как скачать музыку из контакта. API audio.get vkontakte

Вопрос о том как скачать музыку из контакта гуляет на просторах интернета не первый день. Один список популянрых запросов чего стоит:

как скачать музыку из контакта 153018
скачать музыку из контакта программа 46596
скачивание музыки из контакта скачать 35727
контакт программы скачать бесплатно музыку31869
скачать музыку с контакта бесплатно29299

На днях я поймал себя на мысли, что хорошо бы записать свежий список песен в флешку. У меня возникло сразу несколько трудностей.

  • Какие песни записать?
  • Как их сохранять?
  • Как сэкономить время на составление плейлиста и скачку композиций?
Последнее время я слушаю плейлисты радиостанций например BEST FM. Для OFFLINE прослушивания мне нужно получить список, найти каждый трек и скачать.

Немного автоматизации.

Создаем приложение в контакте Standalone

Заходим в контакт Создать приложение. Получаем app_id=номер. Теперь нужно дать дать доступ своему приложению от лица вашего Аккаунта в в vk.com. Для этого нужно поправить URL и вставить его в браузер

http://api.vkontakte.ru/oauth/authorize?client_id=НОМЕР_APP_ID&scope=wall,photos,offline,audio,video&redirect_uri=&display=page&response_type=token

После принятия прав нас редиректит на адрес вида

http://oauth.vk.com/blank.html#access_token=ТУТ_ТОКЕН_НЕОБОДИМЫЙ_НАМ&expires_in=0&user_id=IDUSER.

Открываем страничку например со списком песен BESTFM на сайте просто плеер. Смотрим разметку страницы и делаем простой парсинг по DOM документу. Имея названия композиции и исполнителя можно с большой вероятностью утверждать что поиск по контакту будет удачным.

Простой скрипт на ruby для сохранения музыки из вконтака
  1 #encoding: utf-8
  2 require 'rubygems'
  3 require 'uri'
  4 require 'net/http'
  5 require 'nokogiri'
  6 require 'cgi'
  7 require 'json'
  8 
  9 
 10 def  download(text)
 11 
 12 #Sidorov
 13 @vk_token = 'ТУТ_ТОКЕН_ИЗ_АДРЕСНОЙ_СТРОКИ'
 15 
 16     http = Net::HTTP.new('api.vkontakte.ru', 443)
 17     http.use_ssl = true
 18     req = Net::HTTP::Get.new("/method/audio.search?q=#{URI.escape(text)}&access_token=#{@vk_token}&sort=2&count=1")
 19     r = http.request(req)
 20     puts "vk: #{text}"
 21     m = JSON.parse( r.body )
 22     url = m['response'][1]['url']
 23 
 24     mp3 = Net::HTTP.get URI.parse( url  )
 25     s = text.gsub(/\s+/, '_').gsub("/", "_")
 26     File.open("./download/#{s}.mp3", 'w') do |f|
 27       f.write mp3
 28     end
 29 
 30 
 31 end
 32 
 33 
 34 url = "http://prostopleer.com/top/msk/bestfm"
 35 html = Net::HTTP.get(URI.parse(url))
 36 doc = Nokogiri::HTML(html)
 37 doc.css('ol[id="search-results"] > li').each do |li|
 38 
 39     singl  = "#{li[:singer]} #{li[:song]}"
 40     puts singl
 41     download singl
 42 end
Вам может понравиться