Spotatui: Trình phát nhạc Spotify viết bằng Rust, không lo giới hạn API web
Spotatui là bản fork được cộng đồng duy trì của spotify-tui, viết bằng Rust và chạy trên terminal lẫn giao diện đồ họa. Dự án giải quyết vấn đề giới hạn tốc độ của API web Spotify bằng cách dùng chính API nội bộ của ứng dụng chính thức, đồng thời mở rộng thêm nhiều nguồn nhạc như YouTube, Navidrome, radio internet và Qobuz.

Spotatui: Trình phát nhạc Spotify không còn nỗi lo giới hạn API
Nếu từng dùng spotify-tui — trình phát nhạc Spotify trên terminal vốn đã bị bỏ hoang từ lâu — bạn sẽ thấy dự án Spotatui rất đáng chú ý. Đây là bản fork được hồi sinh và phát triển liên tục suốt gần một năm qua, viết bằng Rust, chạy trên terminal (TUI) lẫn giao diện đồ họa (GUI), và đặc biệt giải quyết được vấn đề nhức nhối nhất của các ứng dụng bên thứ ba: giới hạn tốc độ của Spotify Web API.
Spotatui trên GitHub
Vấn đề muôn thuở của ứng dụng Spotify bên thứ ba
Các ứng dụng như spotatui thường phụ thuộc vào một developer app tạo trên dashboard dành cho nhà phát triển của Spotify. Cách làm này vướng phải hai rào cản lớn:
- Giới hạn tốc độ (rate limit) áp dụng rất chặt, khiến trải nghiệm người dùng bị gián đoạn liên tục.
- Spotify đang âm thầm loại bỏ dần các endpoint khỏi hệ thống API công khai này.
Trước đây, cộng đồng từng có một giải pháp tạm là dùng chung client ID của ncspot, nhưng cách này rốt cuộc cũng bị giới hạn tốc độ. Đây chính là lúc tác giả bắt đầu tìm hướng đi hoàn toàn khác.
Lời giải: Dùng chính API nội bộ của ứng dụng Spotify
Thay vì bám vào Web API công khai, Spotatui chuyển sang sử dụng API nội bộ của ứng dụng Spotify chính thức. Cụ thể:
- Dữ liệu như metadata, playlist, thư viện người dùng, thiết bị, lời bài hát và phân tích âm thanh đều lấy từ API nội bộ.
- Chức năng tìm kiếm dùng Pathfinder — API GraphQL nội bộ của Spotify.
- Phần phát nhạc vẫn dựa trên librespot (thông qua bản fork riêng của dự án), nhưng giờ đây librespot cung cấp cả dữ liệu chứ không chỉ riêng luồng âm thanh.
Nhờ vậy, không còn giới hạn tốc độ dùng chung vì mỗi người dùng có phiên đăng nhập riêng, giống như đang chạy ứng dụng chính thức. Đánh đổi duy nhất là API này không được Spotify tài liệu hóa, nên bất kỳ thay đổi nào từ phía họ cũng có thể làm hỏng tính năng — và tác giả cam kết sẽ sửa ngay khi vấn đề xuất hiện.
Không chỉ Spotify: Một trình phát nhạc đa nguồn
Điểm thú vị là Spotatui đã vượt xa khỏi vai trò một client Spotify đơn thuần. Người dùng có thể chuyển đổi giữa nhiều nguồn nhạc chỉ bằng một phím tắt:
- Tệp cục bộ: FLAC, MP3, OGG, WAV…
- Subsonic / Navidrome: máy chủ nhạc tự lưu trữ.
- Radio internet: hơn 30.000 đài từ thư mục radio-browser.info.
- YouTube: tìm kiếm và phát nhạc, playlist lưu dưới dạng tệp văn bản thuần.
- Qobuz: nhạc lossless chất lượng cao tới FLAC 24/192.
- Apple Music: chỉ trên macOS, điều khiển ứng dụng Music từ xa.
Đáng chú ý, tất cả các nguồn miễn phí này đều không cần tài khoản Spotify, và đều chạy qua engine âm thanh riêng của Spotatui nên vẫn hỗ trợ điều chỉnh âm lượng lẫn trình hiển thị âm thanh trực quan.
Giao diện đồ họa và khả năng tùy biến sâu
Dự án khởi đầu như một TUI thuần túy từ năm 2019, nhưng gần đây đã bổ sung GUI dùng Tauri 2. Giao diện được thiết kế gần giống ứng dụng Spotify chính thức — một chủ ý có tính toán, giúp tác giả và người dùng dễ dàng nhận ra tính năng nào còn thiếu.
Về mặt kỹ thuật, cả hai giao diện dùng chung lõi Rust, cùng logic phát nhạc, cùng đăng nhập và cùng mã nguồn Spotify. Lõi này khởi động một máy chủ web nhỏ chỉ chạy trên localhost mà GUI kết nối tới. Ngoài ra còn có:
- Hỗ trợ script Lua để viết plugin tùy biến.
- Trang web đồng hành tùy chọn tại spotatui.com.
- MCP tools cho phép các tác nhân AI như Claude Code hay Codex trở thành "DJ cá nhân" chỉ qua hội thoại.
Giấy phép và giấy chứng nhận
Hiệu năng: Nhẹ hơn hẳn ứng dụng chính thức
Một trong những điểm mạnh đáng kể nhất là mức tiêu thụ tài nguyên. Theo số liệu đo đạc trên Arch Linux:
- Khi phát nhạc trực tiếp: khoảng 78 MB RAM.
- Thêm lời bài hát đồng bộ: vẫn 78 MB.
- Bật trình hiển thị âm thanh toàn hệ thống: khoảng 80 MB.
Con số này khiêm tốn hơn rất nhiều so với client Electron chính thức của Spotify — vốn thường ngốn vài trăm MB.
Cài đặt và trải nghiệm ban đầu
Cài đặt khá đơn giản với nhiều lựa chọn: script một dòng cho macOS/Linux/WSL, Homebrew, Cargo, AUR trên Arch, Winget trên Windows hay NixOS Flake. Khi chạy lần đầu, ứng dụng sẽ hỏi bạn muốn dùng nguồn nhạc nào:
- Spotify (cần đăng nhập, yêu cầu Premium)
- YouTube (miễn phí, cần
yt-dlp) - Subsonic (miễn phí, cần máy chủ)
- Radio Internet (miễn phí)
- Tệp cục bộ (miễn phí)
- Qobuz (trả phí)
- Apple Music (chỉ macOS)
Với Spotify, quy trình đăng nhập mở trình duyệt và hiển thị mã ghép nối — không cần developer app hay client ID như trước đây.
Kết luận
Spotatui là minh chứng cho thấy một dự án mã nguồn mở được duy trì tốt có thể vượt qua cả những giới hạn kỹ thuật do chính nền tảng lớn đặt ra. Cách tiếp cận dùng API nội bộ tuy có rủi ro về tính ổn định, nhưng đổi lại là trải nghiệm mượt mà, nhẹ nhàng và tự chủ hơn hẳn. Với việc hỗ trợ đa nguồn nhạc cùng khả năng tích hợp AI, đây là lựa chọn đáng cân nhắc cho những ai muốn một trình phát nhạc gọn nhẹ, linh hoạt và không bị trói buộc vào một dịch vụ duy nhất.
Dự án hiện do một nhà phát triển duy nhất duy trì và đang tìm kiếm thêm người đóng góp — từ báo lỗi, góp ý tính năng cho tới việc viết mã và tài liệu.

