Добро пожаловать в документацию Music API. Этот API позволяет интегрировать музыкальные треки из нашей коллекции на ваш сайт.
На данный момент API доступен без аутентификации.
Все запросы должны отправляться на базовый URL: https://jamusic.ru/api/
Все ответы возвращаются в формате JSON. Каждый ответ содержит поле success
, которое указывает, был ли запрос успешным.
В случае успеха, данные будут возвращены в поле data
. В случае ошибки, сообщение об ошибке будет возвращено в поле message
.
Получить список треков. Поддерживает пагинацию и фильтрацию по жанру.
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
limit | число | Нет | Максимальное количество треков в ответе (по умолчанию 50) |
offset | число | Нет | Количество треков, которые нужно пропустить (для пагинации) |
genre | строка | Нет | Фильтр по жанру |
GET /api/tracks.php?limit=10&offset=0&genre=pop
{ "success": true, "data": [ { "id": 1, "title": "Название трека", "artist": "Исполнитель", "genre": "pop", "upload_date": "2023-06-15 12:30:45", "stream_url": "https://jamusic.ru/api/stream.php?id=1", "cover_url": "https://jamusic.ru/uploads/artist/tracks/cover.jpg" }, // другие треки... ], "total": 45, "limit": 10, "offset": 0 }
Получить информацию о конкретном треке.
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | число | Да | ID трека |
GET /api/tracks.php?id=1
{ "success": true, "data": { "id": 1, "title": "Название трека", "artist": "Исполнитель", "genre": "pop", "description": "Описание трека", "upload_date": "2023-06-15 12:30:45", "stream_url": "https://jamusic.ru/api/stream.php?id=1", "cover_url": "https://jamusic.ru/uploads/artist/tracks/cover.jpg" } }
Воспроизвести трек. Этот эндпоинт можно использовать напрямую в теге <audio>
.
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | число | Да | ID трека |
play | число | Нет | Установите 1, чтобы увеличить счетчик воспроизведений |
user_id | строка | Нет | ID пользователя для статистики |
<!DOCTYPE html> <html> <head> <title>Музыкальный плеер</title> </head> <body> <div id="player"> <h2 id="track-title">Загрузка...</h2> <p id="track-artist"></p> <img id="track-cover" src="" alt="Обложка" style="max-width: 300px;"> <audio id="audio-player" controls></audio> </div> <script> // Загружаем трек с ID 1 fetch('https://jamusic.ru/api/tracks.php?id=1') .then(response => response.json()) .then(data => { if (data.success) { const track = data.data; document.getElementById('track-title').textContent = track.title; document.getElementById('track-artist').textContent = track.artist; document.getElementById('track-cover').src = track.cover_url; // Устанавливаем источник аудио const audioPlayer = document.getElementById('audio-player'); audioPlayer.src = track.stream_url + '&play=1'; } }) .catch(error => console.error('Ошибка:', error)); </script> </body> </html>
<!DOCTYPE html> <html> <head> <title>Музыкальный плейлист</title> <style> .track { display: flex; align-items: center; margin-bottom: 10px; padding: 10px; border: 1px solid #ddd; cursor: pointer; } .track img { width: 50px; height: 50px; margin-right: 10px; } .track.active { background-color: #f0f0f0; } </style> </head> <body> <h1>Плейлист</h1> <div id="player"> <audio id="audio-player" controls></audio> </div> <div id="playlist"> <!-- Треки будут добавлены здесь --> </div> <script> const audioPlayer = document.getElementById('audio-player'); const playlist = document.getElementById('playlist'); let currentTrack = null; // Загружаем список треков fetch('https://jamusic.ru/api/tracks.php?limit=20') .then(response => response.json()) .then(data => { if (data.success) { const tracks = data.data; // Создаем плейлист tracks.forEach(track => { const trackElement = document.createElement('div'); trackElement.className = 'track'; trackElement.innerHTML = ` <img src="${track.cover_url}" alt="${track.title}"> <div> <h3>${track.title}</h3> <p>${track.artist}</p> </div> `; // При клике на трек, воспроизводим его trackElement.addEventListener('click', () => { // Удаляем активный класс с предыдущего трека if (currentTrack) { currentTrack.classList.remove('active'); } // Устанавливаем новый трек активным trackElement.classList.add('active'); currentTrack = trackElement; // Воспроизводим трек audioPlayer.src = track.stream_url + '&play=1'; audioPlayer.play(); }); playlist.appendChild(trackElement); }); } }) .catch(error => console.error('Ошибка:', error)); </script> </body> </html>
Пожалуйста, соблюдайте следующие ограничения при использовании API:
Если у вас возникли вопросы или предложения по API, пожалуйста, свяжитесь с нами по адресу support@jamusic.ru.