نَــبَــرَ


نُــبَـرِزُ الخَـطَّ، فَيَـتَجَـلَّى البَـيَـانُ

تيرا Tera مشغل راديو من سطر الأوامر على لينكس

تيرا (Terminal Radio) هو مشغّل راديو مفتوح المصدر يعمل داخل الطرفية فقط. بدلاً من فتح تطبيق وانتظار تحميل النوافذ، تكتب tera، تختار محطة من عبر المفاتيح، فيبدأ استقبال البث، وكل ذلك دون أن تغادر سطر الأوامر.

البرنامج مكتوب بلغة Go، مما يعني أنه يأتي كملف تنفيذي واحد مستقل (Binary) مكتفٍ ذاتيًا، لا يحتاج إلى بيئة Python أو Node.js. يعتمد على برنامج mpv في تشغيل الصوت، ويستمد قائمة المحطات من قاعدة بيانات مجتمعية من موقع https://www.radio-browser.info مما يتيح الوصول إلى عشرات الآلاف من المحطات حول العالم.

لماذا تستخدم مشغّل راديو يعمل بالطرفية؟

  • لا يشغلك أبدًا. يمكنك تركه يعمل في جزء tmux جانبي أو طرفية خلفية أثناء عملك. لا أيقونة في شريط المهام، ولا نافذة قد تُغلق بالخطأ.
  • لا يستهلك موارد تقريبًا. سطح مكتب مثل GNOME أو KDE يستهلك ذاكرة كبيرة أصلًا، وأي تطبيق راديو رسومي يضيف 100 إلى 200 ميغابايت إضافية. تيرا لا يضيف شيئًا يُذكر.
  • قابل للأتمتة. يمكنك إضافة سطر مثل tera play fav إلى ملف ~/.bashrc أو خدمة systemd للمستخدم، فتنطلق محطتك المفضلة تلقائيًا.
  • يعمل عبر SSH. إذا كنت تدير جهاز لينكس عن بُعد، مثل خادم منزلي أو Raspberry Pi أو VPS، يمكنك تشغيل تيرا عليه وتوجيه الصوت إليك، أو تركه يعمل محليًا.
  • لا جمع للبيانات، لا حسابات، لا متصفح. كل شيء عبارة عن ملفات إعدادات محلية في المجلد ~/.config/tera/.

تيرا مقارنة بتطبيقات الراديو الرسومية

الخاصيةTera (سطر أوامر)GNOME Shortwave (واجهة رسومية)البث عبر المتصفح
استهلاك الذاكرة15 إلى 30 ميغابايت130 إلى 200 ميغابايتأكثر من 300 ميغابايت
استهلاك بيانات الإنترنتمعدل البث فقطالبث + تحديثات وصفيةالبث + إعلانات وتتبع
قاعدة بيانات المحطاتradio-browser.inforadio-browser.infoحسب الموقع
التحكم بلوحة المفاتيحكاملجزئيلا
قابلية الأتمتةنعملالا
يعمل عبر SSHنعملالا
المفضلة / قوائم التشغيلنعمنعمعادةً لا
عرض بيانات الأغنيةنعمنعمنعم
البث إلى أجهزة الشبكةلانعمأحيانًا
تسجيل الأغانيلانعملا
زمن بدء التشغيلأقل من ثانية3 إلى 5 ثوانٍ10 ثوانٍ أو أكثر
يحتاج جلسة سطح مكتبلانعمنعم

إذا كنت تقضي يومك على GNOME وتريد فقط اختيار محطة ثم نسيان الأمر، فـ Shortwave مناسب. أما إذا كنت تهتم بخفة الاستهلاك، أو تعمل غالبًا داخل الطرفية، أو تستخدم مدير نوافذ ، أو تدير خادمًا، فـ Tera هو الاختيار الأنسب.

تيرا مقارنة بمشغلات الراديو الأخرى من سطر الأوامر

PyRadio

PyRadio مشغل ناضج مبني على curses ومكتوب بلغة Python. له سنوات عديدة في الساحة.

  • نقاط قوته: متوفر في مستودعات العديد من التوزيعات، توثيقه شامل، ويدعم mplayer وVLC وmpv كخلفيات تشغيل.
  • نقاط ضعفه: يحتاج Python وتبعيات عديدة، وواجهته أكثر تعقيدًا للمبتدئين.
  • نقاط قوة تيرا عليه: ملف ثنائي واحد، واجهة نصية ابسط، والبحث في Radio Browser مدمج من البداية.

Radioactive

Radioactive أداة بسيطة مكتوبة بلغة Python، تركّز على السهولة.

  • نقاط قوته: سهل البدء، ومناسب لمن يريد أمرًا سريعًا للتشغيل.
  • نقاط ضعفه: إدارة أقل، وخيارات مفضلة وتقييمات ونسخ احتياطي محدودة.
  • متى تختار تيرا: عندما تريد تنظيم محطاتك وإدارتها على المدى الطويل.

radio-cli

radio-cli أداة خفيفة جدًا مكتوبة بلغة Rust.

  • نقاط قوته: خفيف وسريع جدًا.
  • نقاط ضعفه: يركّز على تشغيل محطة واحدة، ولا يقدّم ميزات اكتشاف وإدارة مثل تيرا.
  • متى تختار تيرا: عندما تريد التوازن بين الخفة والميزات.

كيف يعمل radio-browser.info

عندما تبحث عن محطات داخل تيرا، فهو لا يستخدم قاعدة بيانات خاصة به، بل يستعلم radio-browser.info، وهو دليل مجتمعي مجاني ومفتوح المصدر لمحطات الراديو عبر الإنترنت.

تخيلها مثل ويكيبيديا، لكن لإذاعات الراديو. أي شخص يمكنه إرسال محطة، التصويت على المحطات، الإبلاغ عن البثوث المعطلة، وإضافة وسوم. البيانات متاحة للجميع، وواجهة البرمجة لا تحتاج حسابًا أو مفتاحًا.

  • تحتوي أكثر من 45,000 محطة من بلدان مختلفة.
  • كل محطة تتضمن رابط البث، الكوديك، معدل البت، اللغة، الدولة، الوسوم، وعدد التصويتات.
  • الخوادم تتحقق دوريًا من حيوية كل بث، لذا تُصفى الروابط الميتة بمرور الوقت.
  • الواجهة موزعة عبر عدة خوادم، فلا توجد نقطة فشل واحدة.
  • الواجهة تدعم فقط التصويت الموجب. عندما تضغط v داخل تيرا، يرسل البرنامج تصويتًا موجبًا للمحطة.

ماذا يعني هذا لك: أنت لا تعتمد على مطور تيرا ليحافظ على قائمة المحطات. القاعدة مستقلة، مدفوعة بالمجتمع، وتستخدمها تطبيقات عديدة. وإذا اختفت محطة من radio-browser.info، تختفي من البحث داخل تيرا أيضًا، لكنك تستطيع إضافتها إلى مفضلاتك المحلية عبر رابط البث.

التثبيت

تيرا غير موجود بعد في مستودعات معظم توزيعات لينكس. لديك عدة خيارات يمكن معرفتها من موقعهم https://github.com/shinokada/tera منها:

الخيار 1: تحميل الملف الثنائي

اذهب إلى صفحة الإصدارات وابحث عن أحدث إصدار، ثم اتبع الخطوات التالية مع تغيير رقم الاصدار للأحدث:

1- curl -LO https://github.com/shinokada/tera/releases/download/v3.11.0/tera_3.11.0_linux_amd64.tar.gz
2- tar -xzf tera_3.11.0_linux_amd64.tar.gz
3- sudo mv tera /usr/local/bin/

الخيار 2: التثبيت عبر Go

إذا كانت لغة Go مثبتة لديك، أو كنت ترغب في تثبيتها:

1- sudo zypper install go

2- go install github.com/shinokada/tera/v3/cmd/tera@latest

سيصبح الملف الثنائي في ~/go/bin/tera. تأكد أن هذا المجلد ضمن PATH ثم أمر التنفيذ:

1- echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.bashrc
2- source ~/.bashrc

تثبيت mpv

تيرا يستخدم mpv كخلفية للصوت. ثبته قبل تشغيل تيرا، وإلا ستظهر رسالة خطأ عند محاولة تشغيل أي شيء:

الاستخدام الأساسي

  • mpv يجب أن يكون مثبتًا.
  • اتصال إنترنت نشط.
  • طرفية تدعم يونيكود.

تشغيل تيرا

tera

يفتح هذا الأمر القائمة الرئيسية. تنقل بمفاتيح الأسهم أو j وk بأسلوب Vim. اضغط ? في أي شاشة لرؤية الاختصارات المتاحة.

في أول مرة تجري بحثًا، يستعلم تيرا واجهة radio-browser.info لجلب المحطات المطابقة. إذا كانت الواجهة بطيئة قليلًا، قد تبقى الشاشة فارغة لبضع ثوانٍ، وهذا طبيعي.

خيارات القائمة الرئيسية

الخيارالوصف
1. تشغيل من المفضلةقوائم محطاتك المحفوظة
2. البحث عن المحطاتاستعلام radio-browser.info
3. الأكثر تشغيلًاسجل استماعك
4. الأعلى تقييمًاالمحطات التي منحتها نجومًا
5. التصفح حسب الوسموسومك المخصصة
6. قوائم تشغيل الوسومقوائم ديناميكية حسب الوسم
7. إدارة القوائمإنشاء، إعادة تسمية، حذف قوائم
8. قائمة الحظرإخفاء المحطات التي لا ترغب بها
9. أنا محظوظمحطة عشوائية حسب كلمة مفتاحية
0. المزامنة والنسخ الاحتياطيأدوات النسخ والاستعادة
-. الإعداداتإعدادات البرنامج

التشغيل السريع: اكتب رقمًا من 10 إلى 99 ثم اضغط Enter في القائمة الرئيسية لتشغيل فوري لمحطة من قائمة My-favorites. تظهر هذه الاختصارات فقط بعد إضافة محطات إلى المفضلة.

البحث عن محطة

  1. اضغط 2 من القائمة الرئيسية.
  2. اختر نوع البحث.
  3. اكتب استعلامك، مثل اللغة arabic .
  4. تصفح النتائج بمفاتيح الأسهم، ثم اضغط Enter للتشغيل.
  5. اضغط f لحفظ المحطة في قائمة My-favorites.

مفاتيح التحكم بالتشغيل

المفتاحالوظيفة
Spaceإيقاف / استئناف
*رفع الصوت (+5%)
/خفض الصوت (-5%)
mكتم / إلغاء الكتم
fحفظ في المفضلة
sحفظ في قائمة أخرى
r ثم 1 إلى 5تقييم المحطة
bحظر المحطة
vالتصويت للمحطة على radio-browser.info
Zضبط مؤقت النوم
Escالعودة للقائمة السابقة
xإيقاف الصوت من أي شاشة
0القفز للقائمة الرئيسية
Ctrl+Cالخروج من تيرا بالكامل

Esc يعيدك في تسلسل القوائم، لكنه لا يوقف الصوت إذا كان خيار متابعة التشغيل عند التنقل مفعّلًا. أما x فهو مفتاح إيقاف التشغيل الفعلي من أي شاشة.

التشغيل المباشر من سطر الأوامر

لست مضطرًا لفتح الواجهة النصية كل مرة. تيرا يدعم أوامر التشغيل المباشر:

لتشغيل أول محطة في المفضلة

tera play fav

لإعادة تشغيل آخر محطة استمعت إليها

tera play rec

إختيار عشوائي حسب الوسم، مثل شغل لي محطة عربية

tera play lucky arabic

لتشغيل أول محطة في المفضلة لمدة 30 دقيقة

tera play fav --duration 30m

مثال أسماء مستعارة للطرفية أضف إلى ~/.bashrc لتشغيل سريع:

alias radio='tera play fav'
alias arabicradio='tera play lucky arabic --duration 1h'

مثال خدمة systemd للمستخدم لتشغيل الراديو تلقائيًا من المفضلة عند تسجيل الدخول لمدة ساعة:

افتح محرر نصوص (مثل nano) لإنشاء ملف باسم radio.service :

nano ~/.config/systemd/user/radio.service

لصق محتوى الخدمة

[Unit]
Description=Tera radio in background
After=sound.target

[Service]
ExecStart=/usr/local/bin/tera play fav --duration 1h
Restart=on-failure
RestartSec=5

[Install]
WantedBy=default.target

أخبر systemd بوجود ملف خدمة جديد للمستخدم:

systemctl --user daemon-reload

فعّلها بالأمر:

systemctl --user enable --now radio.service

ميزة “أنا محظوظ”

اضغط 9 من القائمة الرئيسية، اكتب كلمة مفتاحية مثل classical أو news أو قرآن، ثم اضغط Enter. يستعلم تيرا radio-browser.info عن محطات تطابق الكلمة ويشغّل واحدة عشوائية.

تفعيل وضع التبديل العشوائي:

هذا الوضع يُفعّل قبل البحث من شاشة “أنا محظوظ”. الاختصار Ctrl+T يعمل فقط عندما يكون التركيز على حقل الكلمة المفتاحية. اتبع الخطوات التالية:

  1. اضغط 9 لفتح “أنا محظوظ”.
  2. تأكد أن حقل الكلمة المفتاحية هو المحدد.
  3. اضغط Ctrl+T لتفعيل التبديل.
  4. اكتب الكلمة المفتاحية ثم اضغط Enter.

داخل وضع التبديل، يمكنك التنقل بين المحطات، والانتقال إلى التالية عبر زر الحرف ى ( n ) أو السابقة حبر الحرف ج ( [ ) ، وإيقاف المؤقت، أو إيقاف التبديل مع إبقاء المحطة الحالية تعمل.

إدارة المفضلة

يخزن تيرا المفضلات في ملفات JSON داخل ~/.config/tera/data/favorites/. يمكنك إنشاء أي عدد من القوائم.

  • أثناء تشغيل محطة، اضغط f لإضافتها إلى My-favorites، أو s لاختيار قائمة أخرى.
  • من القائمة الرئيسية، ادخل إلى إدارة القوائم لإنشاء قوائم أو إعادة تسميتها أو حذفها.
  • اضغط d على أي محطة داخل قائمة لحذفها منها.

السمات والمظهر

اضغط - من القائمة الرئيسية، ثم انتقل إلى الإعدادات، ثم السمة / الألوان. السمات المضمنة تشمل: Default، Ocean، Forest، Sunset، Purple Haze، Monochrome، Dracula، Nord.

يمكنك أيضًا تعديل ~/.config/tera/config.yaml مباشرة. مثال :

colors:
  primary: "6"
  highlight: "3"
  error: "9"

padding:
  list_item_left: 4

الألوان تستخدم رموز ANSI 256. استخدم tera theme path لمعرفة موقع الملف، وtera theme reset لاستعادة الافتراضيات إذا حدث خطأ.

المزامنة والنسخ الاحتياطي

اضغط 0 من القائمة الرئيسية، ثم ادخل إلى المزامنة والنسخ الاحتياطي. يمكنك:

  • تصدير كل بياناتك إلى ملف ZIP محلي.
  • استعادة نسخة احتياطية مضغوطة.
  • المزامنة إلى Gist خاص على GitHub.

مشكلات شائعة وحلولها

المحطة تعمل بدون صوت

  1. تحقق أن mpv يعمل .
  2. تأكد من إعدادات الصوت في النظام.
  3. تأكد أنك لم تكتم الصوت داخل تيرا.
  4. على أنظمة PipeWire، تحقق من مخرج الصوت الصحيح.

لم يُعثر على محطات عند البحث

  • ربما تكون واجهة radio-browser.info بطيئة مؤقتًا.
  • تحقق من الوصول للشبكة.
  • جرب مصطلح بحث أوسع.

تشغيل عدة محطات في نفس الوقت

قد يحدث إذا توقف تيرا بشكل غير متوقع بينما mpv لا يزال يعمل. أوقفه بإنهاء العملية الخاصة بـ mpv.

pkill mpv

البث ينقطع بشكل متكرر

غالبًا السبب هو التخزين المؤقت على اتصالات بطيئة أو غير مستقرة. ارفع حجم المخزن المؤقت وفعّل إعادة الاتصال التلقائي. افتح / انشيء ملف من الأمر

nano ~/.config/mpv/mpv.conf

اضف ثم احفظ بداخلة التالي:

cache=yes
cache-secs=30

المفضلة اختفت بعد تحديث

بياناتك محفوظة محليًا داخل ~/.config/tera/. قد تكون موجودة أيضًا نسخة احتياطية قديمة داخل المجلد نفسه.

محطة تظهر في البحث لكنها ترفض التشغيل

بعض المحطات تكون روابطها معطلة أو منتهية. جرّب محطة أخرى بنفس الوسم أو النوع، وامنح تصويتًا للمحطات التي تعمل جيدًا.

Ctrl+T لا يبدل الوضع العشوائي

هذا الاختصار يعمل فقط عندما يكون حقل الكلمة المفتاحية هو المحدد. إذا لم يكن كذلك، استخدم Tab أولًا ثم جرّب مرة أخرى.

تيرا يظهر رموزًا مشوهة أو تخطيطًا مكسورًا

غالبًا المشكلة في دعم الطرفية لليونيكود أو في قيمة TERM. اضبطه إلى xterm-256color.

export TERM=xterm-256color

أضف السطر السابق إلى ملف إعدادات shell الخاص بك ليصبح دائمًا.

تشغيل الراديو مع اغلاق الطرفية

تأكد أولاً من أن برنامج tmux مثبت على جهازك.

  1. افتح الطرفية وأنشئ جلسة جديدة باسم radio:
tmux new-session -s radio
  1. داخل هذه الجلسة، شغل برنامج الراديو tera:
tera

(انتظر حتى يبدأ التشغيل وتأكد من خروج الصوت).

  1. للفصل عن الجلسة مع استمرار عملها في الخلفية، اضغط على زر Ctrl وزر b معاً في لوحة المفاتيح، ثم ارفع يدك عنهما واضغط فوراً على حرف d.

  2. الآن يمكنك إغلاق نافذة الطرفية ، وسيستمر الصوت في العمل دون انقطاع.

للعودة إلى جلسة الراديو والتحكم بها:

tmux attach-session -t radio

لإيقاف الراديو وإنهاء الجلسة تماماً:

tmux kill-session -t radio

بطاقة مرجعية سريعة

الأمر أو المفتاحالوظيفة
teraفتح الواجهة النصية
tera play favتشغيل أول محطة في المفضلة
tera play fav <list> <NO>تشغيل محطة محددة من قائمة مسماة
tera play recتشغيل آخر محطة استُمع إليها
tera play topتشغيل أعلى محطة تقييمًا
<كلمة البحث> tera play luckyتشغيل محطة عشوائية تطابق الكلمة
tera play fav --duration 1hتشغيل لمدة ساعة ثم التوقف
j / k أو الأسهمالتنقل
Enterاختيار / تشغيل
Escرجوع
xإيقاف الصوت
?مساعدة
fحفظ في المفضلة
sحفظ في قائمة أخرى
r ثم 1 إلى 5تقييم
vالتصويت للمحطة
bحظر المحطة
Spaceإيقاف / استئناف
* / /رفع / خفض الصوت
mكتم
Zمؤقت النوم
0القائمة الرئيسية
Ctrl+Cخروج