Aramesh Music — Developers
Now Playing API
← بازگشت به Aramesh Music
◆ مستندات نسخه ۱.۲

به هر جایی که هستی بگو
الان چی گوش می‌دی.

Now Playing API یه لایه‌ی سبک روی Aramesh Music‌ـه که وضعیت پخش زنده‌ی هر شنونده رو — با یه شناسه‌ی کاملاً بی‌نام — در اختیار هر سایت، پروفایل یا اپلیکیشنی می‌ذاره. بدون حساب کاربری، بدون OAuth، بدون سرور واسط.

این چیه؟

سه راه برای نشون‌دادن «الان چی گوش می‌دم» — هر کدوم برای یه موقعیت.

ویجت iframe

یه کارت زنده با کاور، نوار پیشرفت متحرک و اسم آهنگ. برای هر سایتی که <iframe> قبول کنه.

کارت SVG برای گیت‌هاب

یه تصویر زنده که مستقیم تو README.md جا می‌گیره — بدون GitHub Actions، بدون کران‌جاب.

API خام JSON

برای وقتی می‌خوای ظاهرش کاملاً دست خودت باشه — با CORS باز، مستقیم از جاوااسکریپت خودت.

Device ID

Aramesh Music سیستم حساب کاربری کلاسیک (ایمیل/پسورد) نداره. هر مرورگر یه شناسه‌ی محلی و یکتا داره که فقط وضعیت پخش رو مشخص می‌کنه — نه هویتت رو.

این شناسه رو از داخل خود سایت پیدا می‌کنی: کتابخانه‌ی من ← تب «Now Playing API». همون‌جا کد امبد آماده هم برات ساخته می‌شه.

هیچ اطلاعات شخصی (اسم، شماره، ایمیل) تو این شناسه نیست. خودت تصمیم می‌گیری کجا استفاده‌ش کنی.

شروع سریع

سه خط، سه دقیقه.

۱. شناسه‌ت رو بردار

از کتابخانه‌ی من ← Now Playing API کپی کن.

۲. یکی از سه روش رو انتخاب کن

ساده‌ترین شروع، همون ویجت iframe‌ـه — همین پایین.

<iframe
  src="https://arshiahub.ir/music/nowplaying.php?deviceId=YOUR_DEVICE_ID"
  width="320" height="130"
  style="border:none;border-radius:16px;"
  loading="lazy"
  title="Now Playing on Aramesh">
</iframe>

ویجت iframe

یه کارت زنده که خودش هر ۱۵ ثانیه به‌روز می‌شه — کاور، عنوان، خواننده، نوار پیشرفتِ واقعاً متحرک (بین دو رفرش هم لوکال شبیه‌سازی می‌شه، دقیقاً مثل Rich Presence دیسکورد رو اسپاتیفای).

پیش‌نمایش ویجت Now Playing

پارامترها

پارامترتوضیح
deviceIdالزامی — شناسه‌ی شخصی‌ت
themeاختیاری — dark (پیش‌فرض) یا light

کارت SVG برای گیت‌هاب

مخصوص جاهایی که فقط تصویر قبول می‌کنن — مثل README گیت‌هاب. یه خط Markdown، همین:

![Now Playing on Aramesh](https://arshiahub.ir/music/nowplaying-card.php?deviceId=YOUR_DEVICE_ID)

خروجی یه SVG سرورساخته‌ست — کاور، عنوان، نوار پیشرفت، و انیمیشن اکولایزر (با <animate> واقعی SVG، پس تو خودِ گیت‌هاب هم متحرکه).

گیت‌هاب عکس‌های README رو با پراکسی خودش (camo) کش می‌کنه — گاهی چند دقیقه طول می‌کشه تا آپدیت بشه. جزئیات تو بخش رفع اشکال.

API خام JSON

برای وقتی می‌خوای خودت رابط کاربری بسازی. این اکشن CORS باز داره — مستقیم از دامنه‌ی خودت قابل fetch‌ـه.

GET https://arshiahub.ir/music/api.php?action=now_playing&deviceId=YOUR_DEVICE_ID

مثال با fetch

async function loadNowPlaying(deviceId) {
  const res = await fetch(
    `https://arshiahub.ir/music/api.php?action=now_playing&deviceId=${deviceId}`
  );
  const data = await res.json();
  if (data.isPlaying) {
    console.log(`گوش می‌ده: ${data.title} — ${data.artist}`);
  }
}
setInterval(() => loadNowPlaying("YOUR_DEVICE_ID"), 15000);

شنیدن هم‌زمان

لینکی که تو trackUrl برمی‌گرده، دقیقاً از همون ثانیه‌ای که طرف داره گوش می‌ده باز می‌شه — نه از اول آهنگ. مثل دکمه‌ی «Listen Along» دیسکورد.

https://arshiahub.ir/music/track.php?id=42&t=87

فیلدهای پاسخ

وقتی isPlaying: true باشه:

{
  "ok": true,
  "isPlaying": true,
  "title": "شب بی‌ستاره",
  "artist": "عرشیا رهنما",
  "cover": "https://arshiahub.ir/music/uploads/images/xxxx.jpg",
  "trackUrl": "https://arshiahub.ir/music/track.php?id=42&t=87",
  "position": 87.3,
  "duration": 214.0,
  "siteName": "Aramesh Music",
  "siteUrl": "https://arshiahub.ir/music/"
}
فیلدنوعتوضیح
isPlayingbooleanحداکثر ۴۰ ثانیه پیش پخش فعال بوده
position / durationnumberثانیه — برای رسم نوار پیشرفت خودت
trackUrlstringلینک «شنیدن هم‌زمان»، آماده با تایم‌استمپ
coverstringلینک کامل و مطلق

محدودیت‌ها

  • وضعیت هر ۱۵ ثانیه از پلیر Aramesh Music به‌روزرسانی می‌شه؛ بعد از ۴۰ ثانیه سکوت، خودکار isPlaying:false می‌شه.
  • برای جلوگیری از سواستفاده Rate Limit داره — برای مصرف عادی (رفرش هر ۱۵-۳۰ ثانیه) کاملاً کافیه.
  • deviceId اشتباه یا قدیمی هیچ‌وقت خطا نمی‌ده، فقط isPlaying:false برمی‌گرده.

رفع اشکال

کارت گیت‌هاب «Error Fetching Resource» می‌ده+

معمولاً یعنی camo (پراکسی تصویر گیت‌هاب) نسخه‌ی قدیمی/ناموفق رو کش کرده. یه پارامتر الکی به آدرس اضافه کن تا camo مجبور به تلاش دوباره بشه:

...nowplaying-card.php?deviceId=YOUR_ID&v=2

اگه بازم جواب نداد، گواهی SSL دامنه رو با SSL Labs تست کن — camo نسبت به مرورگر عادی سخت‌گیرتره.

ویجت همیشه «آفلاینه» نشون می‌ده+

مطمئن شو دقیقاً همون deviceId که تو تب «Now Playing API» کپی کردی رو استفاده می‌کنی، و همون لحظه یه آهنگ رو Aramesh Music در حال پخشه (نه فقط پاز شده).

سوالات متداول

نیاز به API Key دارم؟+

نه. فقط deviceId خودت لازمه — همون که بدون ثبت‌نام از داخل سایت می‌گیری.

می‌تونم رنگ/سایز ویجت رو عوض کنم؟+

سایز رو با width/height خودِ iframe کنترل کن. تم روشن/تیره با پارامتر theme.

محدودیت تعداد سایتی که وصل می‌کنم؟+

نه، همون deviceId رو هر جا خواستی (چند سایت، بیو دیسکورد، پروفایل گیت‌هاب) هم‌زمان استفاده کن.