Klien Spotify untuk terminal yang ditulis dalam Rust.
Terminal pada demo di atas menggunakan tema Rigel.
Spotify TUI
minuman rumahan
Patah
AUR
Nix
Batalkan Linux
Fedora/CentOS
Muatan
jendela
petunjuk
Catatan di Linux
Pemasang sendok
Instalasi
Menghubungkan ke API Spotify
Penggunaan
Konfigurasi
Persyaratan tingkat tinggi belum diterapkan
Subsistem Windows untuk Linux
Keterbatasan
Menggunakan dengan Spotifyd
Perpustakaan yang digunakan
Perkembangan
Kontributor
Peta jalan
Biner yang dapat dieksekusi adalah spt
.
Untuk macOS dan Linux
buatan instal spotify-tui
Untuk memperbarui, jalankan
pembuatan bir peningkatan spotify-tui
Untuk sistem dengan Snap terinstal, jalankan
jepret instal spt
Versi stabil akan diinstal untuk Anda secara otomatis.
Jika Anda ingin menginstal nightly build, jalankan
jepret instal spt --edge
Bagi yang menggunakan Arch Linux Anda dapat menemukan paket di AUR di sini. Namun jika Anda menggunakan pembantu AUR, Anda dapat menginstalnya langsung dari itu, misalnya (dalam kasus yay), jalankan
yay -S spotify-tui
Tersedia sebagai paket spotify-tui
. Untuk menginstal jalankan:
nix-env -iA nixpkgs.spotify-tui
Dimana nixpkgs
adalah nama saluran dalam konfigurasi Anda. Untuk instalasi yang lebih terkini, gunakan saluran tidak stabil. Dimungkinkan juga untuk menambahkan paket ke environment.systemPackages
(untuk NixOS), atau home.packages
saat menggunakan home-manager.
Tersedia di repositori resmi. Untuk menginstal, jalankan
sudo xbps-install -Su spotify-tui
Tersedia di repositori Copr. Untuk menginstal, jalankan
sudo dnf copr aktifkan atim/spotify-tui -y && sudo dnf install spotify-tui
Gunakan opsi ini jika arsitektur Anda tidak didukung oleh binari bawaan yang terdapat di halaman rilis.
Pertama, instal Rust (menggunakan metode instalasi rustup
yang direkomendasikan) dan kemudian
instal kargo spotify-tui
Metode ini akan membangun biner dari sumber.
Untuk memperbarui, jalankan kembali perintah yang sama.
Untuk kompilasi di Linux, diperlukan paket pengembangan untuk libssl
. Untuk petunjuk instalasi dasar, lihat menginstal OpenSSL. Untuk menemukan dependensi, kompilasi juga memerlukan instalasi pkg-config
.
Jika Anda menggunakan Subsistem Windows untuk Linux, Anda perlu menginstal dependensi tambahan.
Pertama, pastikan penginstal scoop ada di kotak windows Anda, untuk instruksi silakan kunjungi scoop.sh
Kemudian buka PowerShell dan jalankan dua perintah berikut:
sendok ember tambahkan sendok-bucket https://github.com/Rigellute/scoop-bucket sendok instal spotify-tui
Setelah itu program tersedia sebagai: spt
atau spt.exe
Unduh biner terbaru untuk OS Anda.
cd
ke file yang baru saja Anda unduh dan unzip
cd
ke spotify-tui
dan jalankan dengan ./spt
spotify-tui
perlu terhubung ke API Spotify untuk menemukan musik berdasarkan nama, memutar lagu, dll.
Petunjuk tentang cara mengaturnya akan ditampilkan saat Anda pertama kali menjalankan aplikasi.
Tapi ini dia lagi:
Buka dasbor Spotify
Klik Create an app
Anda sekarang dapat melihat Client ID
dan Client Secret
Anda
Sekarang klik Edit Settings
Tambahkan http://localhost:8888/callback
ke URI Pengalihan
Gulir ke bawah dan klik Save
Anda sekarang siap mengautentikasi dengan Spotify!
Kembali ke terminal
Jalankan spt
Masukkan Client ID
Anda
Masukkan Client Secret
Anda
Tekan enter untuk mengonfirmasi port default (8888) atau masukkan port khusus
Anda akan diarahkan ke halaman web resmi Spotify untuk meminta izin Anda.
Setelah menerima izin, Anda akan diarahkan ke localhost. Jika semuanya berjalan dengan baik, URL pengalihan akan diuraikan secara otomatis dan sekarang Anda selesai. Jika server web lokal gagal karena alasan tertentu, Anda akan diarahkan ke halaman web kosong yang mungkin bertuliskan "Koneksi Ditolak" karena tidak ada server yang berjalan. Apa pun yang terjadi, salin URL-nya dan tempelkan ke perintah di terminal.
Dan sekarang Anda siap menggunakan spotify-tui
?
Anda dapat mengedit konfigurasi kapan saja di ${HOME}/.config/spotify-tui/client.yml
. (untuk jepretan ${HOME}/snap/spt/current/.config/spotify-tui/client.yml
)
Binernya diberi nama spt
.
Menjalankan spt
tanpa argumen akan memunculkan UI. Tekan ?
untuk menampilkan menu bantuan yang menunjukkan peristiwa-peristiwa penting yang sedang diterapkan dan tindakannya. Ada juga CLI yang mampu melakukan sebagian besar hal yang dilakukan UI. Gunakan spt --help
untuk mempelajari lebih lanjut.
Berikut adalah beberapa contoh untuk membuat Anda bersemangat.
spt --completions zsh # Prints shell completions for zsh to stdout (bash, power-shell and more are supported) spt play --name "Your Playlist" --playlist --random # Plays a random song from "Your Playlist" spt play --name "A cool song" --track # Plays 'A cool song' spt playback --like --shuffle # Likes the current song and toggles shuffle mode spt playback --toggle # Plays/pauses the current playback spt list --liked --limit 50 # See your liked songs (50 is the max limit) # Looks for 'An even cooler song' and gives you the '{name} from {album}' of up to 30 matches spt search "An even cooler song" --tracks --format "%t from %b" --limit 30
File konfigurasi terletak di ${HOME}/.config/spotify-tui/config.yml
, untuk snap ${HOME}/snap/spt/current/.config/spotify-tui/config.yml
(jangan bingung dengan client.yml yang menangani otentikasi Spotify)
Berikut ini adalah contoh file config.yml:
# Contoh file konfigurasi# Warna tema dapat berupa string RGB dalam bentuk "255, 255, 255" atau string yang mereferensikan warna dari tema terminal Anda: Reset, Hitam, Merah, Hijau, Kuning, Biru, Magenta, Cyan , Abu-abu, Abu-Abu Tua, Merah Muda, Hijau Muda, Kuning Muda, Biru Muda, Magenta Muda, Cyan Muda, Putih. Tema: aktif: Cyan # lagu yang sedang diputar dalam daftar spanduk: LightCyan # spanduk "spotify-tui" saat peluncuran error_border: Batas dialog kesalahan # berwarna merah error_text: LightRed # teks pesan kesalahan (misalnya "Spotify API melaporkan kesalahan 404") petunjuk: Kuning # teks petunjuk ada kesalahan melayang: Magenta # batas panel melayang tidak aktif: Abu-abu # batas panel tidak aktif playbar_background: Hitam # latar belakang bilah kemajuan playbar_progress: LightCyan # mengisi bagian bilah kemajuan playbar_progress_text: Cyan # panjang lagu dan waktu diputar/indikator kiri di bilah kemajuan playbar_text: # nama artis berwarna putih di panel pemutar dipilih: LightCyan # a) batas panel yang dipilih, b) item yang diarahkan dalam daftar, & c) judul trek di pemutar teks: "255, 255, 255" # teks dalam panel header: Putih # teks header di panel (misalnya 'Judul', 'Artis', dll.)perilaku: seek_milliseconds: 5000 peningkatan_volume: 10 # Semakin rendah angkanya, semakin tinggi "frame per detik". Anda dapat mengurangi angka ini agar visualisasi audio lebih lancar, namun biayanya bisa mahal! tick_rate_milidetik: 250 # Aktifkan penekanan teks (biasanya gaya teks miring/tebal). Menonaktifkan ini mungkin penting jika konfigurasi terminal dibatasi dan rendering teks yang lolos mengganggu UI. aktifkan_teks_penekanan: benar # Mengontrol apakah akan menampilkan indikator pemuatan di kanan atas UI setiap kali berkomunikasi dengan Spotify API show_loading_indicator: benar # Menonaktifkan tata letak responsif yang membuat bilah pencarian semakin besar # menyaring dan menerapkan bilah pencarian yang luas menegakkan_wide_search_bar: salah # Menentukan ikon teks untuk ditampilkan di samping item Spotify yang "disukai", seperti # menyukai lagu dan album, atau mengikuti artis. Bisa berupa string dengan panjang berapa pun. # Ikon-ikon ini memerlukan font nerd yang ditambal. ikon_suka: ♥ acak_ikon: ? ulangi_track_icon: ? ulangi_konteks_ikon: ? ikon_bermain: ▶ ikon_jeda: ⏸ # Setel judul jendela ke "spt - Spotify TUI" melalui kode escape ANSI. set_window_title: truekeybindings: # Pukulan tombol dapat digunakan jika hanya menggunakan dua tombol: # ctrl-q berfungsi, # ctrl-alt-q tidak. kembali: "ctrl-q" lompat_ke_album: "a" # Pengubah shift menggunakan huruf kapital (berlaku juga dengan tombol pengubah lainnya # seperti ctrl-A) lompat_ke_artis_album: "A" kelola_perangkat: "d" penurunan_volume: "-" peningkatan_volume: "+" toggle_pemutaran: " " mencari_mundur: "<" mencari_maju: ">" trek_berikutnya: "n" trek_sebelumnya: "p" copy_lagu_url: "c" copy_album_url: "C" membantu: "?" acak: "ctrl-s" ulangi: "r" mencari: "/" audio_analisis: "v" lompat_ke_konteks: "o" tampilan_dasar: "B" tambahkan_item_ke_antrian: "z"
Aplikasi ini menggunakan Web API dari Spotify, yang tidak menangani streaming itu sendiri. Jadi, Anda memerlukan klien Spotify resmi yang terbuka atau alternatif yang lebih ringan seperti Spotifyd.
Jika Anda ingin memutar lagu, Spotify mengharuskan Anda memiliki akun Premium.
Ikuti dokumentasi spotify untuk melakukan penyiapan.
Setelah itu tidak banyak yang bisa dilakukan.
Mulai jalankan daemon spotifyd.
Mulai spt
Tekan d
untuk membuka menu pemilihan perangkat dan "perangkat" yang di-spotify seharusnya ada di sana - jika tidak, periksa dokumen ini
tui-rs
rspotify.dll
Instal OpenSSL
Instal Karat
Instal xorg-dev
(diperlukan untuk dukungan clipboard)
Kloning atau fork repo ini dan cd
ke dalamnya
Dan kemudian cargo run
Anda mungkin mendapatkan kesalahan penautan. Jika demikian, Anda mungkin perlu menginstal dependensi tambahan yang diperlukan oleh paket clipboard
sudo apt-get install -y -qq pkg-config libssl-dev libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
Terima kasih kepada orang-orang hebat ini (kunci emoji):
Alexander Keliris ? ? ? ? ? ? | Michael Marques ? | Grzegorz Koperwas | Austin Gassert | Calen Robinette | M*C*O ? | Andrew Chin |
Sam Naser | Micha | neriglissar | Timon | gemaSayonara | D-Bagus ? | Grzegorz Pawlik |
Lennart Bernhardt | Arnaud Lefebvre | item1029 | Peter K.Moss | Geoff Shannon | Zachary Mayhew | jfaltis |
Marcel Schramm | Fangyi Zhou | Maks | Sven van der Vlist | jacobchrismarsh | Nils Rauch | Nick Stockton ? ? |
Stuart Hinson | Sam Calvert | Jeroen Wijenbergh | Kimberley Masak | Audrey Baxter | Normandia | Peter Maatman |
AlexanderS | Finlandia Vos | Carlos Hernandez ? | Pedro Alves | jtagcat | Benyamin Kitor | Aleš Najmann ? |
Jeremy Stucki | (´⌣`ʃƪ) | Artem Polishchuk ? | Chris Sosnin | Ben Buhse | Sean Li | Timothy Gerber |
Ferdinand Ratajczak | Sheel Choksi | Michael Hellwig | Oliver Daniel | Menarik Fisher | ncoder-1 | Macguire Rintoul |
Ricardo Holguin | Keisuke Toyota | Craig Astil | Onielfa | usrme | sergey a. | Hideyuki Okada |
kepae | Erico Nogueira Rolim | Alexander Meinhardt Scheurer | Ondřej Kinšt | Kryan90 | n-ivanov | bi1yeu |
Mungkin | Bruno A. Muciño | Finn Hediger | dp304 | Marco Micera | Marco Ieni ? | Artur Kovács |
Antony Kellermann | Rasmus Pedersen | noir-Z | David Bailey | dinding domba | Apa itu | Jessi |
Bernyanyi | Yuuki Takahashi | Alejandro Angulo | Anton Kostin | Justin Sexton | Jiati Le | Matthew Cobbing |
milo ? | Diego Veralli | Maja Bojarska |
Proyek ini mengikuti spesifikasi semua kontributor. Kontribusi apa pun diterima!
Tujuannya adalah untuk mengimplementasikan hampir semua fitur Spotify.
Tambahkan lagu ke daftar putar
Mampu menggulir halaman hasil di setiap tampilan
Tabel ini menunjukkan semua hal yang dapat dilakukan dengan Spotify API, apa saja yang sudah diterapkan, dan apakah hal tersebut penting.
metode API | Sudah diterapkan? | Penjelasan | Penting? |
---|---|---|---|
melacak | TIDAK | mengembalikan satu lagu berdasarkan ID, URI, atau URL lagu tersebut | TIDAK |
trek | TIDAK | mengembalikan daftar trek dengan daftar ID trek, URI, atau URL | TIDAK |
artis | TIDAK | mengembalikan satu artis dengan ID, URI, atau URL artis tersebut | Ya |
seniman | TIDAK | mengembalikan daftar artis yang diberi ID artis, URI, atau URL | TIDAK |
artis_album | Ya | Dapatkan informasi katalog Spotify tentang album artis | Ya |
artis_top_tracks | Ya | Dapatkan informasi katalog Spotify tentang 10 lagu teratas artis berdasarkan negara. | Ya |
artis_terkait_artis | Ya | Dapatkan informasi katalog Spotify tentang artis yang mirip dengan artis yang teridentifikasi. Kemiripannya didasarkan pada analisis riwayat mendengarkan komunitas Spotify. | Ya |
album | Ya | mengembalikan satu album berdasarkan ID album, URI, atau URL | Ya |
album | TIDAK | mengembalikan daftar album berdasarkan ID album, URI, atau URL | TIDAK |
cari_album | Ya | Cari album berdasarkan permintaan | Ya |
pencarian_artis | Ya | Cari artis berdasarkan permintaan | Ya |
penelusuran_track | Ya | Cari trek berdasarkan permintaan | Ya |
pencarian_daftar putar | Ya | Cari playlist berdasarkan permintaan | Ya |
album_track | Ya | Dapatkan informasi katalog Spotify tentang trek album | Ya |
pengguna | TIDAK | Mendapatkan informasi profil dasar tentang Pengguna Spotify | TIDAK |
daftar putar | Ya | Dapatkan detail lengkap tentang daftar putar Spotify | Ya |
daftar putar_pengguna_saat ini | Ya | Dapatkan daftar putar pengguna saat ini tanpa perlu mendapatkan profilnya | Ya |
daftar putar_pengguna | TIDAK | Mendapatkan daftar putar pengguna | TIDAK |
daftar putar_pengguna | TIDAK | Mendapatkan daftar putar pengguna | TIDAK |
trek_daftar_putar_pengguna | Ya | Dapatkan detail lengkap tentang trek daftar putar yang dimiliki oleh pengguna | Ya |
pengguna_daftar putar_buat | TIDAK | Membuat daftar putar untuk pengguna | Ya |
detail_perubahan_daftar_pengguna | TIDAK | Mengubah nama daftar putar dan/atau status publik/pribadi | Ya |
pengguna_daftar putar_berhenti mengikuti | Ya | Berhenti mengikuti (menghapus) daftar putar untuk pengguna | Ya |
pengguna_daftar_putar_tambahkan_track | TIDAK | Menambahkan trek ke daftar putar | Ya |
pengguna_playlist_replace_track | TIDAK | Ganti semua trek dalam daftar putar | TIDAK |
user_playlist_recorder_tracks | TIDAK | Susun ulang lagu dalam daftar putar | TIDAK |
pengguna_playlist_remove_all_occurrences_of_track | TIDAK | Menghapus semua kemunculan trek tertentu dari daftar putar tertentu | TIDAK |
user_playlist_remove_special_occurrenes_of_track | TIDAK | Menghapus semua kemunculan trek tertentu dari daftar putar tertentu | TIDAK |
pengguna_daftar putar_ikuti_daftar putar | Ya | Tambahkan pengguna terotentikasi saat ini sebagai pengikut daftar putar. | Ya |
pengguna_daftar putar_periksa_ikuti | TIDAK | Periksa untuk melihat apakah pengguna tertentu mengikuti playlist yang diberikan | Ya |
Saya | TIDAK | Dapatkan informasi profil terperinci tentang pengguna saat ini. | Ya |
pengguna_saat ini | TIDAK | Alias me | Ya |
trek_pemain_pengguna_saat ini | Ya | Dapatkan informasi tentang pengguna yang sedang memutar lagu. | Ya |
album_tersimpan_pengguna_saat ini | Ya | Mendapatkan daftar album yang disimpan di perpustakaan "Musik Anda" pengguna resmi saat ini | Ya |
trek_tersimpan_pengguna_saat ini | Ya | Mendapatkan lagu yang disimpan pengguna atau "Lagu yang Disukai" | Ya |
current_user_followed_artists | Ya | Mendapatkan daftar artis yang diikuti oleh pengguna resmi saat ini | Ya |
current_user_saved_tracks_delete | Ya | Hapus satu atau lebih lagu dari perpustakaan "Musik Anda" pengguna saat ini. | Ya |
current_user_saved_tracks_contain | TIDAK | Periksa apakah satu atau lebih lagu sudah disimpan di perpustakaan “Musik Anda” pengguna Spotify saat ini. | Ya |
current_user_saved_tracks_add | Ya | Simpan satu atau lebih lagu ke perpustakaan "Musik Anda" pengguna saat ini. | Ya |
current_user_top_artists | TIDAK | Dapatkan artis top pengguna saat ini | Ya |
trek_top_pengguna_saat ini | TIDAK | Dapatkan lagu teratas pengguna saat ini | Ya |
saat ini_pengguna_baru_dimainkan | Ya | Dapatkan trek yang baru-baru ini diputar oleh pengguna saat ini | Ya |
saat ini_pengguna_tersimpan_album_tambahan | Ya | Tambahkan satu atau lebih album ke perpustakaan "Musik Anda" pengguna saat ini. | Ya |
current_user_saved_albums_delete | Ya | Hapus satu atau beberapa album dari perpustakaan "Musik Anda" pengguna saat ini. | Ya |
pengguna_ikuti_artis | Ya | Ikuti satu atau lebih artis | Ya |
pengguna_berhenti mengikuti_artis | Ya | Berhenti mengikuti satu atau lebih artis | Ya |
pengguna_ikuti_pengguna | TIDAK | Ikuti satu atau lebih pengguna | TIDAK |
pengguna_berhenti mengikuti_pengguna | TIDAK | Berhenti mengikuti satu atau lebih pengguna | TIDAK |
unggulan_daftar putar | TIDAK | Dapatkan daftar playlist unggulan Spotify | Ya |
rilis_baru | TIDAK | Dapatkan daftar rilis album baru yang ditampilkan di Spotify | Ya |
kategori | TIDAK | Dapatkan daftar kategori yang digunakan untuk menandai item di Spotify | Ya |
rekomendasi | Ya | Dapatkan Rekomendasi Berdasarkan Benih | Ya |
fitur_audio | TIDAK | Dapatkan fitur audio untuk suatu trek | TIDAK |
audios_features | TIDAK | Dapatkan Fitur Audio untuk Beberapa Lagu | TIDAK |
audio_analisis | Ya | Dapatkan Analisis Audio untuk suatu Lagu | Ya |
perangkat | Ya | Dapatkan Perangkat Pengguna yang Tersedia | Ya |
pemutaran_saat ini | Ya | Dapatkan Informasi Tentang Pemutaran Pengguna Saat Ini | Ya |
pemutaran_saat ini | TIDAK | Dapatkan Lagu yang Sedang Diputar Pengguna | TIDAK |
transfer_pemutaran | Ya | Mentransfer Pemutaran Pengguna | Ya |
mulai_pemutaran | Ya | Mulai/Lanjutkan Pemutaran Pengguna | Ya |
jeda_pemutaran | Ya | Jeda Pemutaran Pengguna | Ya |
trek_berikutnya | Ya | Lewati Pemutaran Pengguna ke Lagu Berikutnya | Ya |
trek_sebelumnya | Ya | Lewati Pemutaran Pengguna ke Lagu Sebelumnya | Ya |
mencari_track | Ya | Carilah Posisi Di Lagu Yang Sedang Diputar | Ya |
mengulang | Ya | Atur Mode Pengulangan Pada Pemutaran Pengguna | Ya |
volume | Ya | Atur Volume Untuk Pemutaran Pengguna | Ya |
acak | Ya | Alihkan Acak Untuk Pemutaran Pengguna | Ya |