Skip to content

Аудиозаписи (Музыка)

Раздел Audio предоставляет методы для взаимодействия с аудиозаписями, плейлистами и трансляциями. Вызовы доступны через свойство api.Audio после успешной авторизации.

Получение списка аудиозаписей

Вы можете получить аудиозаписи конкретного пользователя или сообщества. По умолчанию возвращаются аудиозаписи текущего авторизованного пользователя.

csharp
using System;
using System.Threading.Tasks;
using OpenVkNetApi;
using OpenVkNetApi.Models.RequestParameters.Audio;

class Program
{
    static async Task Main(string[] args)
    {
        var api = new OpenVkApi("https://api.openvk.org");
        await api.AuthorizeAsync("логин", "пароль");

        // Настраиваем параметры запроса
        var parameters = new AudioGetParams
        {
            Count = 50,      // Сколько треков получить
            Offset = 0,      // Смещение для пагинации
            NeedUser = true  // Вернуть информацию о загрузившем пользователе
        };

        var audioCollection = await api.Audio.GetAsync(parameters);

        Console.WriteLine($"Всего аудиозаписей в коллекции: {audioCollection.Count}");

        foreach (var track in audioCollection.Items)
        {
            Console.WriteLine($"- {track.Artist} — {track.Title} ({track.Duration} сек.)");
            Console.WriteLine($"  Ссылка на поток: {track.Url}");
        }
    }
}

Поиск музыки

csharp
using OpenVkNetApi.Models.RequestParameters.Audio;

var searchParams = new AudioSearchParams
{
    Query = "Lagtrain",
    Count = 10
};

var searchResult = await api.Audio.SearchAsync(searchParams);
foreach (var track in searchResult.Items)
{
    Console.WriteLine($"Найдено: {track.Artist} - {track.Title}");
}

Работа с плейлистами (альбомами)

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

csharp
// 1. Создание нового плейлиста
int playlistId = await api.Audio.AddAlbumAsync("Мой супер плейлист", "Описание плейлиста");
Console.WriteLine($"Создан плейлист с ID: {playlistId}");

// 2. Добавление аудиозаписи в плейлист (требуются IDs в формате "owner_id_audio_id")
await api.Audio.MoveToAlbumAsync(playlistId, "1_456239012");

Трансляция статуса (Broadcast)

Вы можете транслировать проигрываемую аудиозапись в свой статус профиля или сообщества.

csharp
// Устанавливаем текущий статус вещания
// Параметр audio принимает ID в формате "owner_id_audio_id"
// Параметр targetIds указывает ID получателей статуса (например, ваш ID)
await api.Audio.SetBroadcastAsync("1_456239012", api.CurrentUserId.ToString());

Выпущено под лицензией MIT.