mirror of
https://github.com/Kirazul/Verome-API.git
synced 2026-03-08 00:05:22 +00:00
1ae246c7e41e13b014fdcde1d5f5d444267a3221
Virome API
A music API built with Deno for searching, streaming, and exploring music data from YouTube Music, YouTube, and Last.fm.
Overview
Virome API provides a unified interface to access music data from multiple sources. It includes a built-in web UI for testing endpoints and playing music directly in the browser.
Features
- Search songs, albums, artists, and playlists
- Get song lyrics with synced timestamps
- Stream audio from YouTube via Piped/Invidious proxies
- Generate radio mixes based on a song
- Get trending music and top artists by country
- Artist and track information from Last.fm
- Built-in music player with YouTube IFrame API
Installation
Requirements
- Deno 1.40 or higher
Run Locally
cd deno-music-api
deno run --allow-net --allow-env --allow-read mod.ts
The server starts at http://localhost:8000
Deploy to Deno Deploy
- Push the code to a GitHub repository
- Go to https://dash.deno.com
- Create a new project and link your repository
- Set the entry point to
mod.ts
API Endpoints
Search
| Endpoint | Description | Parameters |
|---|---|---|
| GET /api/search | Search YouTube Music | q, filter (songs/albums/artists) |
| GET /api/yt_search | Search YouTube | q, filter (videos/channels/playlists) |
| GET /api/search/suggestions | Get search suggestions | q |
Content
| Endpoint | Description | Parameters |
|---|---|---|
| GET /api/songs/:videoId | Get song details | videoId |
| GET /api/albums/:browseId | Get album tracks | browseId |
| GET /api/artists/:browseId | Get artist info | browseId |
| GET /api/playlists/:playlistId | Get playlist tracks | playlistId |
Discovery
| Endpoint | Description | Parameters |
|---|---|---|
| GET /api/related/:videoId | Get related songs | videoId |
| GET /api/similar | Find similar tracks | title, artist |
| GET /api/trending | Trending music by country | country |
| GET /api/radio | Generate radio mix | videoId |
| GET /api/top/artists | Top artists by country | country, limit |
| GET /api/top/tracks | Top tracks by country | country, limit |
Info
| Endpoint | Description | Parameters |
|---|---|---|
| GET /api/lyrics | Get song lyrics | title, artist |
| GET /api/artist/info | Artist bio and stats | artist |
| GET /api/track/info | Track details | title, artist |
Streaming
| Endpoint | Description | Parameters |
|---|---|---|
| GET /api/stream | Get stream URLs | id |
| GET /api/watch_playlist | Get watch playlist | videoId or playlistId |
| GET /health | Health check | - |
Usage Examples
Search for songs
GET /api/search?q=Blinding%20Lights&filter=songs
Get lyrics
GET /api/lyrics?title=Blinding%20Lights&artist=The%20Weeknd
Get stream URLs
GET /api/stream?id=4NRXx6U8ABQ
Get top artists from a country
GET /api/top/artists?country=Tunisia&limit=20
Generate radio from a song
GET /api/radio?videoId=4NRXx6U8ABQ
Project Structure
deno-music-api/
mod.ts - Main server and route handlers
lib.ts - API clients (YouTube Music, YouTube, Last.fm)
ui.ts - Web UI HTML template
deno.json - Deno configuration
assets/
Logo.png - Project logo
Data Sources
- YouTube Music API (unofficial)
- YouTube Data (via Invidious/Piped)
- Last.fm API (artist info, similar tracks)
- LRCLib (lyrics)
License
MIT
Disclaimer
This is an unofficial API for educational purposes. It is not affiliated with YouTube, Google, or Last.fm.
Description
A music API built with Deno for searching, streaming, and exploring music data from YouTube Music, YouTube, and Last.fm.
https://github.com/Kirazul/Verome-API
Readme
313 KiB
Languages
TypeScript
100%
