Я их слегка подправил и прикрутил к фубару. Ниже описано, как заставить это всё работать.
Необходимо: foobar2000 + foo_run, VkAudioSaver, python.
- вам нужно поставить VkAudioSaver (я пока не знаю другого способа получить токен).
- запустите VkAudioSaver и пройдите процедуру авторизации.
- найдите файл «c:\Users\[имя пользователя]AppData\Roaming\Bingo's Soft\VkAudioSaver.ini», найдите в нём строку «accessToken=куча_символов», это ваш токен, сохраните его куда-нибудь. После этого программа нам будет не нужна.
- установите Python 2.7.
- скачайте файлы из приложения
- ИЛИ
- создайте три файла:
vkapi.py- Код: Выделить всё
#!/usr/bin/python
import urllib2;
import urllib;
import json;
class VkApi():
authToken = "";
def setAccessToken(self, accessToken):
self.authToken = accessToken;
def makeRequest(self, method, params = {}):
while True:
encodedParams = "";
for key in params.keys():
if (type(params[key]) == type(str())):
encodedParams += "&" + key + "=" + urllib.quote(params[key]);
else:
encodedParams += "&" + key + "=" + urllib.quote(str(params[key]).encode("utf-8"));
req = urllib2.Request("https://api.vk.com/method/" + method + "?access_token=" + self.authToken + encodedParams);
response = urllib2.urlopen(req, timeout=4);
jsonDecoder = json.JSONDecoder();
data = jsonDecoder.decode(response.read());
if "response" in data:
return data["response"];
elif "error" in data:
return data;
def audioSearch(self, query, count = 10, sort = 2, lyrics = 1):
return self.makeRequest("audio.search", {"q": query, "count": count, "sort": sort, "lyrics": lyrics});
- Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
from vkapi import *
from settings import *
import sys;
import subprocess;
vkApi = VkApi();
vkApi.setAccessToken(accessToken);
try:
res = vkApi.audioSearch(sys.argv[1]);
except IndexError:
res = vkApi.audioSearch(raw_input("Search: "));
for i in range(1, len(res) - 1):
track = res[i];
a = track["url"];
subprocess.call([exepath, a], shell=True);
- Код: Выделить всё
accessToken = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
exepath = "c:\\Program Files (x86)\\foobar2000\\foobar2000.exe"
- проставьте в файле settings.py путь к фубару и токен, полученный ранее.
- foo_run vk search artist
- Код: Выделить всё
c:\python27\pythonw.exe .\vk\vksearch.py %artist%
- Код: Выделить всё
c:\python27\python.exe .\vk\vksearch.py
- подправьте пути в foo_run
- в настройках «Preferences → Shell Integration» поставить галочку «Set "Enqueue" as the default action» (я так и не смог заставить фубар заработать с ключом «/add»)
Как-нибудь попозже я сделаю ввод строки поиска в модальном окне, а не в консоли и разберусь, почему ключ /add в фубаре не работает.