Плейлисты: Ссылка на трек с Яндекс Музыки (album 39097212). Как извлечь метаданные артиста через API Яндекс Музыки?
## Как извлечь метаданные артиста через API Яндекс Музыки
Яндекс Музыка предоставляет неофициальный (но широко используемый) API, доступ к которому можно получить через библиотеку **yandex-music-api** для Python. Рассмотрим, как извлечь метаданные артиста, зная идентификатор альбома — в данном случае `39097212`.
### Шаг 1. Установка библиотеки
bash
pip install yandex-music
### Шаг 2. Авторизация и получение данных об альбоме
python
from yandex_music import Client
# Авторизация по токену
client = Client(‘ВАШ_ТОКЕН’).init()
# Получаем информацию об альбоме
album_id = 39097212
album = client.albums_with_tracks(album_id)
print(‘Название альбома:’, album.title)
print(‘Год выпуска:’, album.year)
print(‘Жанр:’, album.genre)
# Извлекаем метаданные артиста
for artist in album.artists:
print(‘ID артиста:’, artist.id)
print(‘Имя артиста:’, artist.name)
print(‘Обложка:’, artist.cover.uri if artist.cover else ‘нет’)
### Шаг 3. Получение расширенных метаданных артиста
Если нужны подробные данные (биография, жанры, количество подписчиков), используйте метод `artists`:
python
artist_id = album.artists[0].id
artist_info = client.artists(artist_id)
for info in artist_info:
print(‘Имя:’, info.name)
print(‘Жанры:’, info.genres)
print(‘Рейтинг:’, info.ratings)
print(‘Ссылки:’, info.links)
### Шаг 4. Формирование строки CSV
Для сохранения метаданных в CSV-формат:
python
import csv
album = client.albums_with_tracks(39097212)
artist = album.artists[0]
row = [
album.id,
album.title,
album.year,
album.genre,
artist.id,
artist.name
]
with open(‘yandex_music_meta.csv’, ‘w’, newline=», encoding=’utf-8′) as f:
writer = csv.writer(f)
writer.writerow([‘album_id’, ‘album_title’, ‘year’, ‘genre’, ‘artist_id’, ‘artist_name’])
writer.writerow(row)
**Пример одной строки CSV для альбома 39097212:**
39097212,Название альбома,2023,pop,12345678,Имя Артиста
### Как получить токен Яндекс Музыки
Токен можно получить через OAuth Яндекса. Используйте `yandex_music.Client.from_credentials(login, password)` или авторизуйтесь через браузер и извлеките токен из cookies/localStorage Яндекс ID.
### Важные замечания
— API является неофициальным и может изменяться без предупреждения.
— Соблюдайте лимиты запросов, чтобы не получить бан по IP.
— Для коммерческого использования данных необходимо соглашение с Яндексом.
— Поле `cover.uri` возвращает шаблон URL — замените `%%` на нужный размер, например `400×400`.
