Search and download music from YouTube Music with lyrics
Project description
Kikusan
Search and download music from YouTube Music with lyrics.
Features
- Search YouTube Music
- Download audio in OPUS/MP3/FLAC format
- Playlist support (download entire playlists)
- Quick download (search and download first match)
- Automatic lyrics fetching from lrclib.net (LRC format)
- CLI and web interface
- Docker support
Installation
uv sync
Usage
CLI
# Search for music
kikusan search "Bohemian Rhapsody"
# Download by video ID
kikusan download bSnlKl_PoQU
# Download by URL
kikusan download --url "https://music.youtube.com/watch?v=bSnlKl_PoQU"
# Search and download first match
kikusan download --query "Bohemian Rhapsody Queen"
# Download entire playlist
kikusan download --url "https://music.youtube.com/playlist?list=..."
# Custom filename format
kikusan download bSnlKl_PoQU --filename "%(title)s"
# Options
kikusan download bSnlKl_PoQU --output ~/Music --format mp3
Web Interface
kikusan web
# Open http://localhost:8000
Docker
docker compose up -d
# Open http://localhost:8000
Configuration
Environment variables:
| Variable | Default | Description |
|---|---|---|
KIKUSAN_DOWNLOAD_DIR |
./downloads |
Download directory |
KIKUSAN_AUDIO_FORMAT |
opus |
Audio format (opus, mp3, flac) |
KIKUSAN_FILENAME_TEMPLATE |
%(artist,uploader)s - %(title)s |
Filename template (yt-dlp format) |
KIKUSAN_WEB_PORT |
8000 |
Web server port |
KIKUSAN_WEB_PLAYLIST |
None |
M3U playlist name for web downloads (optional) |
Requirements
- Python 3.12+
- ffmpeg (for audio processing)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kikusan-0.3.0.tar.gz.
File metadata
- Download URL: kikusan-0.3.0.tar.gz
- Upload date:
- Size: 82.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d0354659330b02560863b190560846287c0db18583fcc71de9d67150d4c6a50
|
|
| MD5 |
6ad861cf6cc2a7aa4244dc2f6c01089a
|
|
| BLAKE2b-256 |
1217b7f969a903dc6349a1fdf03c615436ef1419928b512569114f317e745f0c
|
Provenance
The following attestation bundles were made for kikusan-0.3.0.tar.gz:
Publisher:
publish.yml on dadav/kikusan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kikusan-0.3.0.tar.gz -
Subject digest:
5d0354659330b02560863b190560846287c0db18583fcc71de9d67150d4c6a50 - Sigstore transparency entry: 833834992
- Sigstore integration time:
-
Permalink:
dadav/kikusan@fb7a4ebf6637caa8d9ab8550629f24e47c784621 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/dadav
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fb7a4ebf6637caa8d9ab8550629f24e47c784621 -
Trigger Event:
push
-
Statement type:
File details
Details for the file kikusan-0.3.0-py3-none-any.whl.
File metadata
- Download URL: kikusan-0.3.0-py3-none-any.whl
- Upload date:
- Size: 26.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c776f93fdbea951c25c976a487b1640ffb1fc5e811340175d874713f1cfbbb4
|
|
| MD5 |
0a725764c5e4da9f5b4d2c618033d4e8
|
|
| BLAKE2b-256 |
971d9f76ff0f2e301cd10fddcb04df07650667276c475e50186e5ddb109f9c8f
|
Provenance
The following attestation bundles were made for kikusan-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on dadav/kikusan
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kikusan-0.3.0-py3-none-any.whl -
Subject digest:
8c776f93fdbea951c25c976a487b1640ffb1fc5e811340175d874713f1cfbbb4 - Sigstore transparency entry: 833834993
- Sigstore integration time:
-
Permalink:
dadav/kikusan@fb7a4ebf6637caa8d9ab8550629f24e47c784621 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/dadav
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fb7a4ebf6637caa8d9ab8550629f24e47c784621 -
Trigger Event:
push
-
Statement type: