питон и музыка

Описание: Программирование на супер модном мега крутом языке Питон.

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#1 dyvniy » Чт, 30 июня 2016, 15:49:43

Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#2 dyvniy » Вт, 23 октября 2018, 11:56:02

Онлайн ресурсы минусовки. для создания минусовок музыки. Минусовка ))
https://rusadmin.biz/bloknot/sdelat-minusovku-onlajn-v-horoshem-kachestve/
2.1 X-MINUS.ME создаёт минусовку в любой тональности
2.2 Ru.Minus удалит вокал из песни
2.3 Vocalremover задавливает голос
2.4 Vocal Remover Pro
Изображение

dyvniy M
Автор темы, Администратор
Администратор
Аватара
dyvniy M
Автор темы, Администратор
Администратор
Возраст: 41
Репутация: 1
Лояльность: 1
Сообщения: 3579
Зарегистрирован: Ср, 10 октября 2012
С нами: 11 лет 5 месяцев
Профессия: Программист
Откуда: Россия, Москва
ICQ Сайт Skype ВКонтакте

#3 dyvniy » Ср, 13 февраля 2019, 11:12:34

Качать музыку из вконтакта)
Надо с этим разобраться.
https://habr.com/ru/post/266671/
Спойлер
11 сентября 2015 в 13:00
Скачивание музыки из VK, используя VK api и Python3
API,
Python
Из песочницы
Ещё совсем недавно было первое июня, а тут уже первое сентября. Осень на дворе.

Да, недавно тоже так отвернулся, а очнулся — Mail поглотил VK. И началось: видео без рекламы не посмотришь, музыку не послушаешь — запретили правообладатели. Ходят слухи, что вообще запретят. Почуял неладное. А тут как раз такое время года. Вот и подумал, а почему бы мне не собрать свои запасы? Законсервирую свою музыку на своём компе, перекину на диск — слаще любого варенья будет! А поможет мне в этом, как не странно, сам ВК, а точнее — его api. А ещё третий python, встроенная библиотека urllib и библиотека по работе с данным в формате json.

У api vk можно запрашивать информацию о аудиозаписях пользователя. Ответ нам будет приходить в формате json, и в нём будет содержаться количество аудиозаписей пользователя, а также расширенная информация о каждой песне, если такая информация имеется. А главное, что у каждой песни будет url-адрес, по которому она лежит на серверах ВК. Как раз то, что нам нужно.

Для работы с большинством методов api нужен специальный ключ (далее — access_token), который vk выдает приложениям. Как его получить — расскажу чуть позже.

Помните окошко, которое появляется, как только приложение запрашивает доступ к информации с вашей страницы? Нажимая «Разрешить», вы даете приложению право получить access_token на ваше имя, в котором будут содержаться параметры доступа к информации с вашей страницы.

Что ж, начнём?

Откроем вкладку "разработчикам" и создадим новое приложение:

image

Вводим название вашего приложения и выбираем его тип: standalone-приложение:

image

Подтверждаем действие через смс, которая падает в ваш мобильный:

image

Как только мы прошли все формальности, мы получаем id нашего приложения, который будем использовать для получения access_token-a. Откроем ту часть документации, которая посвящена авторизации клиентских standalone-приложений.

image

image

Важно
redirect_uri в нашем случае должен быть равен oauth.vk.com/blank.html, так как другой адрес нужно указывать, только если мы разрабатываем браузерное javascript-приложение.

Так как в нашем приложении мы будем работать с аудиозаписями, в атрибут scope мы передадим параметр audio. Обычно access_token выдается на время. Чтобы получить его бессрочно, в атрибут scope можно передать параметр offline.

Примечания:
несколько параметров в один и тот же атрибут пишутся через запятую.
атрибуты в запросе пишутся через амперсанд (&)

Для полной таблицы параметров атрибута scope посетите ссылку.

В итоге в адресной строке мы вбиваем что-то на подобие:
https://oauth.vk.com/authorize/client_id=YOUR_CLI ... splay=page&response_type=token

Если у вас всё получилось, вы увидите это окошко.

image

После успешной авторизации и получения прав доступа вы будете перенаправлены по адресу oauth.vk.com/blank.html. В адресной строке вы увидите атрибут access_token= YOUR_ACCESS_TOKEN. Обязательно сохраните этот ключ, чтобы не потерять его в дальнейшем. Именно его мы будем использовать при написании запросов к api.

Для того, чтобы получать список аудиозаписей пользователя, мы воспользуемся методом api audio.get. Как я уже говорил выше, метод audio.get возвращает нам ответ в json-формате. Вот пример json-объекта, который возвращает этот метод.
{
"response":
[712,
{
"aid":393825624,
"owner_id":59223044,
"artist":"Saint Asonia",
"title":"Blow Me Wide Open",
"duration":224,
"url":"http:\/\/cs9-11v4.vk.me\/p13\/39a25fcb2c8ce0.mp3?extra=hLsHqDEzrwLWudHCpV1RRIAEHmwymoX6DyWikmJFCpjhdS_xrATqtAtC9trWSyyd1asFakko8BvXCTkjfQKEPlqdVFL6",
"lyrics_id":"274446714",
"genre":18
},
{"aid":392782493,
"owner_id":59223044,
"artist":"Kongos",
"title":"I'm Only Joking",
"duration":225,
"url":"http:\/\/cs9-12v4.vk.me\/p15\/b4d77a6a010d08.mp3?extra=7PQDPyENs9k029CQcO7hVtYV3AHQx90-ZUxKYKhE3ztr5BY9esrUeLaF-KG-ub1_svELz0E1M5pd6zca3BK12J4EwrnI",
"lyrics_id":"184734619"
,"genre":21
}
]
}

Итак, как вы видите, объект состоит из словаря с ключом response, по которому хранится массив песен.

Первый объект — количество песен на странице пользователя, а все последующие являются словарями, содержащими информацию о песнях. Воспользуемся методом request.urlopen из библиотеки urllib, который позволяет получать данные, хранящиеся по url-адресу в интернете.

from urllib.request import urlopen

Функция urlopen требует обязательный параметр — url-адрес, который она откроет. В нашем случае — это метод audio.get:

image

Для обращения к методам api vk нужно дергать методы, расположенные по адресу
https://api.vk.com/method/METHOD_NAME?
, передавая туда все нужные методу аргументы.

Итак, напишем тот урл, который будем открывать:
address = 'https://api.vk.com/method/audio.get?owner_id=YOUR_OWNER_ID&access_token=YOUR_ACCESS_TOKEN'

и откроем его:

data = urlopen(address)

Данные, которые мы получили, надо прочитать и раскодировать, так как нам приходит нераскодированная информация. А так, как это всё завернуто в формат json, то чтобы обращаться со словарём, как с объектом Python, мы должны воспользоваться библиотекой json.

import json

Воспользуемся методом loads(), который превращает строку, содержащую объект формата json, в объект языка Python:

decoded_response = data.read().decode()
final_data = json.loads(decoded_response)

Ура! Теперь мы можем обращаться к данным, содержащимся в переменной final_data. Получим все словари, в которых содержится информация о песнях:

songs = final_data['response'][1:]

Этой строчкой мы получили все элементы массива response с 1 по конечный. Теперь будем работать с каждой песней отдельно.
for song in songs:
song_artist = song['artist']
song_title = song['title']
song_url = song['url']


Получим информацию, хранящуюся по адресу song_url:

cached_song = urlopen(song_url).read()

И запишем её в файл. Где же его создавать, спросите вы? А для этого вам нужна будет библиотека os. Напишем вне нашего цикла:
import os

И создадим папку music на диске С функцией
os.mkdir('C://Music')

Теперь у нас есть папка, в которую мы хотим записывать наши песни.

Для того, чтобы наши песни хранились в порядке, мы будем создавать группы для каждого артиста. А для того, чтобы понять, нужно ли нам создавать папку, или нет, воспользуемся функцией os.listdir, которая возвращает список объектов по указанному пути:
if song_artist not in os.listdir('C://Music'):
os.mkdir('C://Music/%s' %(song_artist))


Теперь мы создаём файл и записываем туда нашу песню.
filename = 'C://Music/%s/%s.mp3' %(song_artist, song_title)
file = open(filename, 'wb')
file.write(cached_song)
file.close()

Ура. Осталось всего лишь ещё раз посмотреть на красивый код и нажать «Выполнить». Ну, а ещё, конечно, подождать немного, ведь песням нужно какое-то время на запись.

Наслаждайтесь музыкой и любите программирование. До связи!
Полный текст программы

Код: Выделить всё

from urllib.request import urlopen
import json
import os
os
.mkdir('C://Music')

address = 'https://api.vk.com/method/audio.get?owner_id=MY_ID&access_token=MY_TOKEN'
data = urlopen(address)
decoded_response = data.read().decode()
final_data = json.loads(decoded_response)
songs = final_data['response'][1:]
for song in songs:
       song_artist = song['artist']
       song_title = song['title']
       song_url = song['url']
       cached_song = urlopen(song_url).read()
       if song_artist not in os.listdir('C://Music'):
              os.mkdir('C://Music/%s' %(song_artist))
       filename = 'C://Music/%s/%s.mp3' %(song_artist, song_title)
       file = open(filename, 'wb')
       file.write(cached_song)
       file.close()
Изображение


Название раздела: Python
Описание: Программирование на супер модном мега крутом языке Питон.

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения
:) ;) :hihi: :P :hah: :haha: :angel: :( :st: :_( :cool: 8-| :beee: :ham: :rrr: :grr: :* :secret: :stupid: :music: Ещё смайлики…
   

Вернуться в «Python»

Кто сейчас на форуме (по активности за 15 минут)

Сейчас этот раздел просматривают: 8 гостей