-
Notifications
You must be signed in to change notification settings - Fork 2
/
acrcloud_api.py
70 lines (58 loc) · 2.71 KB
/
acrcloud_api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#sudo pip install vk
import vk
# c этим сложнее. https://github.com/acrcloud/acrcloud_sdk_python
# там есть инструкция, только файл setup.py пуст, поэтому нужно в него скопировать содержимое
# файлика //python2.7/setup.py
from acrcloud.recognizer import ACRCloudRecognizer
# конфиг стандартный, я зарегистрировал аккаунт на acrcloud.com
# интсрукция по заведению нового инстанса есть в мануале на гитхабе, но кажется, нам и с такими ключами хватит
config = {
# Replace "xxxxxxxx" below with your project's host, access_key and access_secret.
'host': 'eu-west-1.api.acrcloud.com',
'access_key': '4aca6d089717c23585f43b957870c8c3',
'access_secret': '2WM52yeRg7TaizVhlk7RkdA0FVqgp4iVOupE1CM4',
'timeout': 10 # seconds
}
music_file_path = '/Users/akupriyanov/Desktop/icon_hack/englishman.mp3'
def get_responce(config, music_file_path, start_seconds=3):
recognizer = ACRCloudRecognizer(config)
# responce = recognizer.recognize_by_file(file_path='/Users/akupriyanov/Desktop/icon_hack/Oxxxymiron.mp3', start_seconds=3)
responce = recognizer.recognize_by_file(file_path=music_file_path, start_seconds=start_seconds)
return responce
def parce_responce(response):
#print(response)
split_responce = response.split(':')
arr_responce = []
for i, element_responce in enumerate(split_responce):
arr_responce += element_responce.split(',')
#print(arr_responce)
is_find = True
for i, element_responce in enumerate(arr_responce):
if 'msg' in element_responce:
if 'Success' in arr_responce[i + 1]:
print("Я нашел и начинаю парсинг!")
break
else:
print("Я не нашел:(")
is_find = False
break
title, artist = None, None
if is_find:
for i, element_responce in enumerate(arr_responce):
if 'title' in element_responce:
title = arr_responce[i + 1]
title = ''.join(
list(
filter(
lambda ch: ch not in "?.!/;:\\\"'{[]}", title)
)
)
if 'artists' in element_responce and 'name' in arr_responce[i + 1]:
artist = arr_responce[i + 2]
artist = ''.join(
list(
filter(
lambda ch: ch not in "?.!/;:\\\"'{[]}", artist)
)
)
return (title, artist)