Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

145 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 Yami Music Player

Yami Music Player là ứng dụng nghe nhạc & xem video đa nền tảng hiện đại, kết hợp giữa giao diện máy tính CustomTkinter mượt mà và hệ thống Web Remote Control (LAN Stream Server) thiết kế theo phong cách Glassmorphism đẳng cấp.

Python Version FastAPI License


✨ Tính Năng Nổi Bật (Key Features)

💻 1. Desktop Music Engine (Python & CustomTkinter)

  • Đĩa nhạc xoay (Cover Art Disc): Hiệu ứng xoay đĩa 360° sinh động theo nhạc, tự động trích xuất ảnh bìa chất lượng cao từ ID3 Tag hoặc tìm kiếm online HD qua iTunes API.
  • Đồng bộ lời bài hát (Synced Karaoke Lyrics): Tự động tải file .lrc qua bộ xử lý đa tầng: LRCLIB Direct, NetEase Cloud Music, MxLRC, SyncedLyricsGenius. Tự lọc rác timestamp [00:00.00] và tách tên bài hát thông minh (ví dụ: 05 (Không Phai) - Masew Remix). Hỗ trợ click trực tiếp vào dòng lời để tua nhạc.
  • Audio Visualizer: Khung sóng nhạc trực quan đồng bộ theo thời gian thực với giai điệu bài hát.
  • Phát Video (MP4/MKV): Nhúng trình phát video mượt mà hỗ trợ đầy đủ các định dạng nhờ tích hợp python-vlc.

🌐 2. Web Remote Control & LAN Streaming

  • Điều khiển từ xa qua Wi-Fi/LAN: Phát nhạc và điều khiển player từ điện thoại, tablet hoặc bất kỳ thiết bị nào cùng mạng.
  • Giao diện Web Glassmorphism: Giao diện kính mờ tuyệt đẹp tích hợp đầy đủ hiệu ứng xoay đĩa, thanh tiến trình (Seekbar) tua nhạc từng giây và danh sách phát realtime.
  • Chế độ Karaoke 1 câu: Hiển thị từng dòng lời bài hát đang phát với hiệu ứng Slide-up / Fade-in mượt mà trên trình duyệt.
  • On-the-fly Transcoding (FFmpeg): Tự động chuyển đổi các định dạng chất lượng cao (.flac, .ogg, .opus, .wav, .m4a) sang MP3 192kbps để stream mượt qua Web.

🛠️ Công Nghệ Sử Dụng (Tech Stack)

  • Core Language: Python 3.14
  • GUI Framework: customtkinter, Pillow (PIL)
  • Audio/Video Engine: python-vlc, mutagen
  • Web & Backend: FastAPI, Uvicorn, FFmpeg
  • Lyrics Engines & Tools: lyricsgenius, syncedlyrics, LRCLIB API, NetEase Cloud Music API, mxlrc
  • Package Manager: uv

📂 Cấu Trúc Thư Mục Dự Án (Project Structure)

yami/
├── web/                     # Frontend Web Remote (HTML, CSS, JS)
│   ├── index.html
│   ├── style.css
│   └── app.js
├── data/                    # Thư mục dữ liệu cấu hình & tài nguyên local
├── lyrics_cache/            # Thư mục lưu trữ cache lời bài hát (.lrc & .txt)
├── cover_art.py             # UI Đĩa xoay, Video player & xử lý Tcl/Tkinter Image
├── lyrics_handler.py        # Engine tìm kiếm, bóc tách tên bài & parse lời LRC
├── music.py                 # Core Engine phát nhạc & quản lý trạng thái
├── playlist.py              # Giao diện và logic danh sách phát
├── stream_server.py         # FastAPI Web Server stream nhạc & API điều khiển
├── visualizer.py            # Khung sóng nhạc Audio Visualizer
├── mxlrc.exe                # Công cụ CLI hỗ trợ tải lời LRC
├── main.py                  # Entry-point khởi chạy ứng dụng
├── pyproject.toml           # Cấu hình dự án & dependencies (uv)
├── requirements.txt         # Gói phụ thuộc Python
└── README.md

🚀 Hướng Dẫn Cài Đặt & Khởi Chạy

1. Yêu cầu hệ thống

Python 3.10+ (Khuyên dùng Python 3.14).

VLC Media Player: Đã cài đặt trên máy để hỗ trợ playback.

FFmpeg: Đã thêm vào System Environment PATH để hỗ trợ Transcoding stream.

2. Cài đặt thư viện phụ thuộc

Sử dụng uv (Khuyên dùng)

Sử dụng uv để cài đặt nhanh chóng:
uv pip install -r requirements.txt

Hoặc pip truyền thống

pip install -r requirements.txt

3. Khởi chạy ứng dụng

Bash
uv run python main.py
Desktop App: Trình phát nhạc GUI sẽ xuất hiện trên màn hình.

Web Remote Control: Truy cập vào địa chỉ bên dưới từ máy tính hoặc điện thoại trong cùng mạng Wi-Fi:

Trực tiếp trên máy: http://localhost:8080/

Từ điện thoại: http://<IP_MAY_TINH>:8080/

☕ Ủng Hộ Phát Triển (Donate)

Nếu bạn yêu thích Yami Music Player và muốn tiếp sức cho mình phát triển thêm nhiều tính năng mới, bạn có thể ủng hộ một ly cà phê qua các kênh dưới đây. Sự đóng góp của bạn là động lực rất lớn! ❤️

🟣 Ví MoMo 🟢 Vietcombank (VCB) 🔵 BIDV
MoMo QR VCB QR BIDV QR
0823883028 1055835227 8896524932
Đặng Lâm Tấn Phát Đặng Lâm Tấn Phát Đặng Lâm Tấn Phát

👨‍💻 Thông Tin Tác Giả

Developer: Phát Tấn PC (Đặng Lâm Tấn Phát)

Triết lý: "Tối ưu linh hoạt - Tương thích tối đa - Hoạt động ổn định trên mọi môi trường"

Số điện thoại / Zalo: 0823883028

Hỗ trợ kỹ thuật / Facebook: Phát Tấn PC/Đặng Lâm Tấn Phát

Developed with ❤️ and a lot of coffee.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages