عميل Spotify للمحطة مكتوب بلغة Rust.
تستخدم المحطة في العرض التوضيحي أعلاه سمة Rigel.
سبوتيفي توي
البيرة المنزلية
فرقعة
أور
لا شيء
لينكس الفراغ
فيدورا/سينت أو إس
البضائع
ويندوز
يدوي
ملاحظة على لينكس
المثبت سكوب
تثبيت
الاتصال بـ API الخاص بـ Spotify
الاستخدام
إعدادات
متطلبات عالية المستوى لم يتم تنفيذها بعد
نظام ويندوز الفرعي لينكس
القيود
باستخدام مع سبوتيفيد
المكتبات المستخدمة
تطوير
المساهمين
خريطة الطريق
الملف الثنائي القابل للتنفيذ هو spt
.
لكل من نظامي التشغيل MacOS وLinux
تثبيت الشراب سبوتيفي-توي
للتحديث، قم بتشغيل
ترقية المشروب سبوتيفي توي
بالنسبة للنظام المثبت عليه Snap، قم بتشغيله
المفاجئة تثبيت spt
سيتم تثبيت الإصدار الثابت لك تلقائيًا.
إذا كنت ترغب في تثبيت البنية الليلية، قم بتشغيل
المفاجئة تثبيت spt --edge
بالنسبة لأولئك الذين يستخدمون Arch Linux، يمكنك العثور على الحزمة على AUR هنا. ومع ذلك، إذا كنت تستخدم مساعد AUR، فيمكنك التثبيت مباشرة منه، على سبيل المثال (في حالة yay)، قم بتشغيل
ياي -S سبوتيفي-توي
متوفر كحزمة spotify-tui
. لتثبيت التشغيل:
nix-env -iA nixpkgs.spotify-tui
حيث nixpkgs
هو اسم القناة في التكوين الخاص بك. للحصول على تثبيت أكثر حداثة، استخدم القناة غير المستقرة. من الممكن أيضًا إضافة الحزمة إلى environment.systemPackages
(لنظام NixOS) أو home.packages
عند استخدام home-manager.
متوفر في المستودعات الرسمية. للتثبيت، قم بتشغيل
Sudo xbps-install -Su Spotify-tui
متوفر في مستودعات Copr. للتثبيت، قم بتشغيل
sudo dnf copr تمكين atim/spotify-tui -y && sudo dnf تثبيت Spotify-tui
استخدم هذا الخيار إذا كانت البنية الخاصة بك غير مدعومة بالثنائيات المعدة مسبقًا والموجودة في صفحة الإصدارات.
أولاً، قم بتثبيت Rust (باستخدام طريقة تثبيت rustup
الموصى بها) ثم
تثبيت البضائع سبوتيفي-توي
ستقوم هذه الطريقة ببناء الملف الثنائي من المصدر.
للتحديث، قم بتشغيل نفس الأمر مرة أخرى.
للتجميع على Linux، يلزم توفر حزم التطوير الخاصة بـ libssl
. للحصول على تعليمات التثبيت الأساسية، راجع تثبيت OpenSSL. من أجل تحديد التبعيات، يتطلب التجميع أيضًا تثبيت pkg-config
.
إذا كنت تستخدم نظام Windows الفرعي لنظام التشغيل Linux، فستحتاج إلى تثبيت تبعيات إضافية.
أولاً، تأكد من وجود برنامج تثبيت scoop على صندوق Windows الخاص بك، للحصول على التعليمات يرجى زيارة scoop.sh
ثم افتح بوويرشيل وقم بتشغيل الأمرين التاليين:
دلو مغرفة أضف دلو مغرفة https://github.com/Rigellute/scoop-bucket مغرفة تثبيت سبوتيفي-توي
بعد ذلك يتوفر البرنامج على شكل: spt
أو spt.exe
قم بتنزيل أحدث ثنائي لنظام التشغيل الخاص بك.
cd
إلى الملف الذي قمت بتنزيله للتو وفك ضغطه
cd
مضغوط لـ spotify-tui
وتشغيله باستخدام ./spt
يحتاج spotify-tui
إلى الاتصال بـ API الخاص بـ Spotify للعثور على الموسيقى بالاسم وتشغيل المسارات وما إلى ذلك.
سيتم عرض إرشادات حول كيفية إعداد هذا عند تشغيل التطبيق لأول مرة.
ولكن ها هم مرة أخرى:
انتقل إلى لوحة تحكم سبوتيفي
انقر فوق Create an app
يمكنك الآن رؤية Client ID
Client Secret
الآن انقر فوق Edit Settings
أضف http://localhost:8888/callback
إلى عناوين URI الخاصة بإعادة التوجيه
قم بالتمرير لأسفل وانقر فوق Save
أنت الآن جاهز للمصادقة مع Spotify!
العودة إلى المحطة
تشغيل spt
أدخل Client ID
الخاص بك
أدخل Client Secret
الخاص بك
اضغط على زر الإدخال لتأكيد المنفذ الافتراضي (8888) أو أدخل منفذًا مخصصًا
ستتم إعادة توجيهك إلى صفحة ويب Spotify الرسمية لتطلب منك الأذونات.
بعد قبول الأذونات، ستتم إعادة توجيهك إلى المضيف المحلي. إذا سارت الأمور على ما يرام، فسيتم تحليل عنوان URL لإعادة التوجيه تلقائيًا، وقد انتهيت الآن. إذا فشل خادم الويب المحلي لسبب ما، فستتم إعادة توجيهك إلى صفحة ويب فارغة قد تقول شيئًا مثل "تم رفض الاتصال" نظرًا لعدم تشغيل أي خادم. بغض النظر عن ذلك، انسخ عنوان URL والصقه في المطالبة في الوحدة الطرفية.
والآن أنت جاهز لاستخدام spotify-tui
؟
يمكنك تعديل التكوين في أي وقت على ${HOME}/.config/spotify-tui/client.yml
. (للحصول على ${HOME}/snap/spt/current/.config/spotify-tui/client.yml
)
الثنائي يدعى spt
.
سيؤدي تشغيل spt
بدون وسائط إلى ظهور واجهة المستخدم. يضعط ?
لإظهار قائمة المساعدة التي تعرض الأحداث الرئيسية المنفذة حاليًا وإجراءاتها. يوجد أيضًا واجهة سطر الأوامر (CLI) قادرة على القيام بمعظم الأشياء التي تقوم بها واجهة المستخدم. استخدم spt --help
لمعرفة المزيد.
فيما يلي بعض الأمثلة لتجعلك متحمسًا.
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
يوجد ملف التكوين في ${HOME}/.config/spotify-tui/config.yml
، للملف ${HOME}/snap/spt/current/.config/spotify-tui/config.yml
(يجب عدم الخلط بينه باستخدام client.yml الذي يتعامل مع مصادقة Spotify)
فيما يلي نموذج لملف config.yml:
# ملف التكوين النموذجي # يمكن أن تكون ألوان السمة عبارة عن سلسلة rgb من النموذج "255، 255، 255" أو سلسلة تشير إلى الألوان من السمة الطرفية الخاصة بك: إعادة تعيين، أسود، أحمر، أخضر، أصفر، أزرق، أرجواني، سماوي ، رمادي، رمادي داكن، LightRed، LightGreen، LightYellow، LightBlue، LightMagenta، LightCyan، White.theme: نشط: Cyan # الأغنية التي يتم تشغيلها حاليًا في القائمة الشعار: LightCyan # شعار "spotify-tui" عند الإطلاق error_border: حد مربع حوار الخطأ باللون الأحمر error_text: نص رسالة خطأ LightRed # (على سبيل المثال "تم الإبلاغ عن خطأ API Spotify 404") تلميح: نص تلميح باللون الأصفر في الأخطاء تحوم: أرجواني # حد جزء تحوم غير نشط: حدود رمادية للأجزاء غير النشطة playbar_background: خلفية سوداء لشريط التقدم playbar_progress: LightCyan # يملأ جزءًا من شريط التقدم playbar_progress_text: سماوي # طول الأغنية ووقت التشغيل/مؤشر اليسار في شريط التقدم playbar_text: اسم الفنان الأبيض في جزء المشغل المحدد: LightCyan # أ) حد الجزء المحدد، ب) العنصر الذي تم تمريره في القائمة، و ج) عنوان المسار في المشغل النص: "255، 255، 255" # النص في الأجزاء الرأس: نص رأس أبيض # في الأجزاء (على سبيل المثال، "العنوان"، "الفنان"، وما إلى ذلك) السلوك: Seek_MilliSeconds: 5000 زيادة الحجم: 10 # كلما انخفض الرقم، زاد عدد "الإطارات في الثانية". يمكنك تقليل هذا الرقم بحيث يكون التصور الصوتي أكثر سلاسة ولكن هذا قد يكون مكلفًا! tic_rate_ميلي ثانية: 250 # تمكين التركيز على النص (عادةً ما يكون تصميم النص مائلًا/غامقًا). قد يكون تعطيل هذا أمرًا مهمًا إذا كان التكوين الطرفي مقيدًا بطريقة أخرى ويتداخل عرض هروب النص مع واجهة المستخدم. تمكين_نص_التأكيد: صحيح # يتحكم في ما إذا كان سيتم عرض مؤشر التحميل في الجزء العلوي الأيمن من واجهة المستخدم عند الاتصال بـ Spotify API show_loading_indicator: صحيح # تعطيل التخطيط سريع الاستجابة الذي يجعل شريط البحث أصغر أو أكبر # شاشات وتفرض شريط بحث واسع force_wide_search_bar: خطأ # يحدد رمز النص الذي سيتم عرضه بجوار عناصر Spotify "المفضلة"، مثل # الأغاني والألبومات التي أعجبتك، أو الفنانين الذين تابعتهم. يمكن أن يكون أي سلسلة طول. # تتطلب هذه الرموز خطًا مصححًا للطالب الذي يذاكر كثيرا. like_icon: ♥ رمز_الخلط: ؟ Repeat_track_icon: ؟ Repeat_context_icon: ؟ أيقونة_اللعب: ◀ Pause_icon: ⏸ # قم بتعيين عنوان النافذة على "spt - Spotify TUI" عبر رمز الهروب ANSI. set_window_title: truekeybindings: # يمكن استخدام ضغطة المفتاح إذا كانت تستخدم مفتاحين فقط: # يعمل ctrl-q، # ctrl-alt-q لا يفعل ذلك. العودة: "ctrl-q" Jump_to_album: "أ" # تستخدم معدّلات Shift حرفًا كبيرًا (ينطبق أيضًا على مفاتيح التعديل الأخرى # مثل السيطرة-A) Jump_to_artist_album: "أ" إدارة_الأجهزة: "د" إنقاص_الحجم: "-" زيادة_الحجم: "+" toggle_playback: " " look_backwards: "<" request_forwards: ">" next_track: "ن" المسار السابق: "ص" Copy_song_url: "ج" Copy_album_url: "ج" يساعد: "؟" خلط ورق اللعب: "ctrl-s" كرر: "ص" يبحث: "/" تحليل_الصوت: "v" Jump_to_context: "س" عرض_أساسي: "ب" add_item_to_queue: "ض"
يستخدم هذا التطبيق Web API من Spotify، والذي لا يتعامل مع البث نفسه. لذلك ستحتاج إما إلى عميل Spotify رسمي مفتوح أو بديل أخف وزنًا مثل Spotifyd.
إذا كنت تريد تشغيل المقاطع الصوتية، يتطلب Spotify أن يكون لديك حساب Premium.
اتبع وثائق Spotifyd للإعداد.
بعد ذلك ليس هناك الكثير لذلك.
ابدأ في تشغيل البرنامج الخفي Spotifyd.
ابدأ spt
اضغط على d
للانتقال إلى قائمة اختيار الجهاز ويجب أن يكون "الجهاز" الموجود هناك - إذا لم يكن كذلك، فتحقق من هذه المستندات
توي-RS
com.rspotify
قم بتثبيت OpenSSL
تثبيت الصدأ
تثبيت xorg-dev
(مطلوب لدعم الحافظة)
استنساخ أو تفرع هذا الريبو والقرص cd
إليه
ومن ثم cargo run
قد تحصل على خطأ في الارتباط. إذا كان الأمر كذلك، فربما تحتاج إلى تثبيت تبعيات إضافية تتطلبها حزمة الحافظة
sudo apt-get install -y -qq pkg-config libssl-dev libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
الشكر موصول لهؤلاء الأشخاص الرائعين (مفتاح الرموز التعبيرية):
ألكسندر كيليريس ؟ ؟ ؟ ؟ ؟ ؟ | ميكائيل ماركيز ؟ | جرزيجورز كوبرواس | أوستن جاسيرت | كالين روبينيت | م * ج * أو ؟ | أندرو تشين |
سام ناصر | ميكا | neriglissar | تيمون | صدى سايونارا | د-نيس ؟ | جرزيجورز بوليك |
لينارت برنهاردت | أرنود لوفيفر | tem1029 | بيتر ك. موس | جيف شانون | زاكاري مايهيو | jfaltis |
مارسيل شرام | فانجي تشو | الأعلى | سفين فان دير فليست | jacobchrismarsh | نيلز راوخ | نيك ستوكتون ؟ ؟ |
ستيوارت هينسون | سام كالفيرت | جيروين ويجنبيرج | كيمبرلي كوك | أودري باكستر | نورمان | بيتر ماتمان |
الكسندر س | فين فوس | كارلوس هيرنانديز ؟ | بيدرو ألفيس | jtagcat | بنيامين كيتور | أليس نجمان ؟ |
جيريمي ستوكي | (´⌣``ʃƪ) | ارتيم بوليشوك ؟ | كريس سوسنين | بن بوحس | شون لي | تيموثي جربر |
فرديناند راتاجزاك | شيل تشوكسي | مايكل هيلويج | أوليفر دانيال | درو فيشر | نكودر-1 | ماكغواير رينتول |
ريكاردو هولجوين | كيسوكي تويوتا | كريج أستيل | أونيلفا | usrme | سيرجي أ. | هيديوكي اوكادا |
kepae | إريكو نوغيرا روليم | ألكسندر مينهاردت شورير | أوندريج كينست | كريان90 | ن-إيفانوف | bi1yeu |
يمكن | برونو أ. موسينو | فين هيدجر | dp304 | ماركو ميسيرا | ماركو إييني ؟ | أرتور كوفاكس |
أنتوني كيليرمان | راسموس بيدرسن | نوير-Z | ديفيد بيلي | com.sheepwall | هواتواستات | جيسي |
غنى | يوكي تاكاهاشي | أليخاندرو أنجولو | انطون كوستين | جاستن سيكستون | جياتي لو | ماثيو كوبينج |
ميلو ؟ | دييغو فيرالي | ماجا بوجارسكا |
يتبع هذا المشروع مواصفات جميع المساهمين. المساهمات من أي نوع موضع ترحيب!
الهدف هو تنفيذ كل ميزات Spotify تقريبًا في النهاية.
إضافة الأغاني إلى قائمة التشغيل
تكون قادرًا على التمرير خلال صفحات النتائج في كل عرض
يوضح هذا الجدول كل ما هو ممكن باستخدام Spotify API، وما تم تنفيذه بالفعل، وما إذا كان ذلك ضروريًا.
طريقة API | نفذت حتى الآن؟ | توضيح | ضروري؟ |
---|---|---|---|
مسار | لا | تقوم بإرجاع مسار واحد بالنظر إلى معرف المسار أو URI أو URL | لا |
المسارات | لا | تقوم بإرجاع قائمة بالمسارات المعطاة لقائمة معرفات المسار أو معرفات URI أو عناوين URL | لا |
فنان | لا | تقوم بإرجاع فنان واحد بمعرف الفنان أو URI أو عنوان URL الخاص به | نعم |
الفنانين | لا | تقوم بإرجاع قائمة بالفنانين الذين لديهم معرفات الفنان أو معرفات URI أو عناوين URL | لا |
Artist_albums | نعم | احصل على معلومات كتالوج Spotify حول ألبومات الفنان | نعم |
Artist_top_tracks | نعم | احصل على معلومات كتالوج Spotify حول أفضل 10 مسارات للفنان حسب البلد. | نعم |
فنان_مرتبط_بالفنانين | نعم | احصل على معلومات كتالوج Spotify حول فنانين مشابهين لفنان محدد. يعتمد التشابه على تحليل سجل الاستماع لمجتمع Spotify. | نعم |
الألبوم | نعم | إرجاع ألبوم واحد بمعرف الألبوم أو معرفات URI أو عنوان URL الخاص به | نعم |
ألبومات | لا | إرجاع قائمة الألبومات بمعرفات الألبوم أو معرفات URI أو عناوين URL | لا |
search_album | نعم | ألبوم البحث على أساس الاستعلام | نعم |
search_artist | نعم | بحث الفنان على أساس الاستعلام | نعم |
search_track | نعم | مسار البحث على أساس الاستعلام | نعم |
search_playlist | نعم | البحث في قائمة التشغيل بناءً على الاستعلام | نعم |
Album_track | نعم | احصل على معلومات كتالوج Spotify حول مسارات الألبوم | نعم |
مستخدم | لا | يحصل على معلومات الملف الشخصي الأساسية حول مستخدم Spotify | لا |
قائمة التشغيل | نعم | احصل على التفاصيل الكاملة حول قائمة تشغيل Spotify | نعم |
current_user_playlists | نعم | احصل على قوائم تشغيل المستخدم الحالي دون الحاجة إلى الحصول على ملفه الشخصي | نعم |
user_playlists | لا | يحصل على قوائم التشغيل للمستخدم | لا |
user_playlist | لا | يحصل على قائمة التشغيل للمستخدم | لا |
user_playlist_tracks | نعم | احصل على التفاصيل الكاملة لمسارات قائمة التشغيل المملوكة للمستخدم | نعم |
user_playlist_create | لا | يقوم بإنشاء قائمة تشغيل للمستخدم | نعم |
user_playlist_change_detail | لا | يغير اسم قائمة التشغيل و/أو الحالة العامة/الخاصة | نعم |
user_playlist_unfollow | نعم | إلغاء متابعة (حذف) قائمة تشغيل للمستخدم | نعم |
user_playlist_add_track | لا | يضيف المسارات إلى قائمة التشغيل | نعم |
user_playlist_replace_track | لا | استبدال كافة المسارات في قائمة التشغيل | لا |
user_playlist_recorder_tracks | لا | إعادة ترتيب المسارات في قائمة التشغيل | لا |
user_playlist_remove_all_occurrences_of_track | لا | يزيل كل تكرارات المسارات المحددة من قائمة التشغيل المحددة | لا |
user_playlist_remove_special_occurrenes_of_track | لا | يزيل كل تكرارات المسارات المحددة من قائمة التشغيل المحددة | لا |
user_playlist_follow_playlist | نعم | أضف المستخدم الحالي المصادق عليه كمتابع لقائمة التشغيل. | نعم |
user_playlist_check_follow | لا | تحقق لمعرفة ما إذا كان المستخدمون المعينون يتابعون قائمة التشغيل المحددة | نعم |
أنا | لا | الحصول على معلومات مفصلة عن الملف الشخصي للمستخدم الحالي. | نعم |
current_user | لا | الاسم المستعار بالنسبة me | نعم |
current_user_playing_track | نعم | احصل على معلومات حول المستخدمين الحاليين الذين يلعبون المسار حاليًا. | نعم |
current_user_saved_albums | نعم | يحصل على قائمة بالألبومات المحفوظة في مكتبة "الموسيقى" الخاصة بالمستخدم الحالي المعتمد | نعم |
current_user_saved_tracks | نعم | يحصل على المسارات المحفوظة للمستخدم أو "الأغاني المفضلة" | نعم |
current_user_followed_artists | نعم | يحصل على قائمة بالفنانين متبوعة بالمستخدم المعتمد الحالي | نعم |
current_user_saved_tracks_delete | نعم | قم بإزالة مقطع صوتي واحد أو أكثر من مكتبة "الموسيقى الخاصة بك" الخاصة بالمستخدم الحالي. | نعم |
current_user_saved_tracks_contain | لا | تحقق مما إذا كان هناك مسار واحد أو أكثر محفوظ بالفعل في مكتبة "الموسيقى" الخاصة بمستخدم Spotify الحالي. | نعم |
current_user_saved_tracks_add | نعم | احفظ مسارًا واحدًا أو أكثر في مكتبة "الموسيقى الخاصة بك" الخاصة بالمستخدم الحالي. | نعم |
current_user_top_artists | لا | احصل على أفضل الفنانين للمستخدم الحالي | نعم |
current_user_top_tracks | لا | احصل على أفضل المقاطع الصوتية للمستخدم الحالي | نعم |
current_user_recently_played | نعم | احصل على المسارات التي تم تشغيلها مؤخرًا للمستخدم الحالي | نعم |
current_user_saved_albums_add | نعم | أضف ألبومًا واحدًا أو أكثر إلى مكتبة "الموسيقى الخاصة بك" الخاصة بالمستخدم الحالي. | نعم |
current_user_saved_albums_delete | نعم | قم بإزالة ألبوم واحد أو أكثر من مكتبة "الموسيقى الخاصة بك" الخاصة بالمستخدم الحالي. | نعم |
user_follow_artists | نعم | اتبع واحدا أو أكثر من الفنانين | نعم |
user_unfollow_artists | نعم | قم بإلغاء متابعة فنان واحد أو أكثر | نعم |
user_follow_users | لا | متابعة مستخدم واحد أو أكثر | لا |
user_unfollow_users | لا | إلغاء متابعة مستخدم واحد أو أكثر | لا |
feature_playlists | لا | احصل على قائمة بقوائم التشغيل المميزة لـ Spotify | نعم |
new_releases | لا | احصل على قائمة بإصدارات الألبومات الجديدة المميزة في Spotify | نعم |
فئات | لا | احصل على قائمة بالفئات المستخدمة لوضع علامة على العناصر في Spotify | نعم |
توصيات | نعم | احصل على توصيات بناءً على البذور | نعم |
audio_features | لا | احصل على ميزات الصوت للمسار | لا |
audios_features | لا | احصل على ميزات صوتية لعدة مسارات | لا |
تحليل_الصوت | نعم | احصل على التحليل الصوتي للمسار | نعم |
جهاز | نعم | احصل على الأجهزة المتاحة للمستخدم | نعم |
current_playback | نعم | احصل على معلومات حول التشغيل الحالي للمستخدم | نعم |
current_playing | لا | احصل على المسار الذي يقوم المستخدم بتشغيله حاليًا | لا |
Transfer_playback | نعم | نقل تشغيل المستخدم | نعم |
start_playback | نعم | بدء/استئناف تشغيل المستخدم | نعم |
Pause_playback | نعم | إيقاف تشغيل المستخدم مؤقتًا | نعم |
next_track | نعم | تخطي تشغيل المستخدم إلى المسار التالي | نعم |
Prev_track | نعم | تخطي تشغيل المستخدم إلى المسار السابق | نعم |
سعى_المسار | نعم | ابحث عن الموضع في المسار الذي يتم تشغيله حاليًا | نعم |
يكرر | نعم | اضبط وضع التكرار على تشغيل المستخدم | نعم |
مقدار | نعم | ضبط مستوى الصوت لتشغيل المستخدم | نعم |
خلط | نعم | تبديل خلط ورق اللعب لتشغيل المستخدم | نعم |