Audiobookshelf روی VPS: کتابخانه شخصی کتاب‌های صوتی و پادکست

1 دقیقه خواندن
Tropic
Audiobookshelf روی VPS: کتابخانه شخصی کتاب‌های صوتی و پادکست

Language: fa

Audiobookshelf: چگونه سرور شخصی کتاب صوتی و پادکست بسازیم

می‌توانید گوش دادن به یک کتاب را روی رایانه شروع کنید، روی تلفن از همان نقطه ادامه دهید، پیش از سفر آن را دانلود کنید و پس از تعویض دستگاه پیشرفت خود را حفظ کنید؛ برای هیچ‌کدام لازم نیست به یک سرویس پولی دیگر وابسته باشید. Audiobookshelf مجموعه صوتی شما را به کتابخانه‌ای مرتب و آنلاین با جلد، فصل، اپلیکیشن و پروفایل‌های جداگانه برای تمام اعضای خانواده تبدیل می‌کند.

این سرویس فروشگاه یا منبع کتاب‌های رایگان نیست. کاربران خودشان فایل‌های صوتی قانونی و بدون محافظت DRM ناسازگار را اضافه می‌کنند. در مقابل، کتاب‌ها، سابقه شنیدن و تنظیمات روی سرور خودشان باقی می‌ماند.

Audiobookshelf چیست؟

Audiobookshelf یک سرور رایگان، متن‌باز و self-hosted برای کتاب‌های صوتی و پادکست‌هاست. پوشه‌های دارای فایل‌های رسانه‌ای را اسکن می‌کند، کتابخانه را بر اساس نویسنده و مجموعه مرتب می‌کند، فراداده و جلد را دریافت می‌کند و سپس اجازه می‌دهد مجموعه را از طریق مرورگر یا اپلیکیشن موبایل گوش دهید.

از نظر کاربردی، Audiobookshelf یک سرویس پخش شخصی است که کاتالوگ آن را خودتان می‌سازید. سرور کتابخانه و پیشرفت شنیدن را نگه می‌دارد و تلفن، تبلت یا رایانه شما نقش کلاینت را دارد. بنابراین می‌توانید کتاب را روی یک دستگاه متوقف کنید و روی دستگاه دیگر از همان نقطه ادامه دهید.

Audiobookshelf در خانه روی NAS یا مینی‌پی‌سی هم اجرا می‌شود. وقتی می‌خواهید از هر شبکه‌ای به کتابخانه دسترسی داشته باشید، بدون روشن گذاشتن رایانه خانه، تنظیم انتقال پورت یا وابستگی به اتصال اینترنت منزل، VPS راحت‌تر است.

Audiobookshelf چه کارهایی می‌تواند انجام دهد؟

همگام‌سازی پیشرفت بین دستگاه‌ها

هر کاربر نقطه توقف، سابقه و نشانک‌های ذخیره‌شده خودش را دارد. رابط وب، Progressive Web App و کلاینت‌های رسمی موبایل برای Android و iOS در دسترس هستند. می‌توانید کتاب را از قبل روی تلفن دانلود کنید و بدون اینترنت گوش دهید.

ساخت حساب‌های جداگانه

می‌توانید چند کاربر را روی یک سرور ایجاد کنید، بدون اینکه پیشرفت شنیدن آن‌ها با هم مخلوط شود. مدیر دسترسی به کتابخانه‌ها و مجوزها را کنترل می‌کند و در صورت نیاز می‌تواند محتوا را بر اساس برچسب محدود کند. هر کاربر فهرست جداگانه کتاب‌های در حال شنیدن، سابقه و نشانک‌های خود را دارد.

سازمان‌دهی کتابخانه

سرویس عنوان، توضیحات، نویسندگان و جلدها را از منابع خارجی دریافت می‌کند، کتاب‌ها را بر اساس نویسنده و مجموعه گروه‌بندی می‌کند، اجازه اصلاح فصل‌ها را می‌دهد و ترتیب آن‌ها را پیگیری می‌کند. چند فایل MP3 را می‌توان در یک فایل M4B ادغام کرد و جلد و فراداده را داخل فایل قرار داد. بهتر است پیش از تغییر فایل‌های اصلی، از کتابخانه یک نسخه کپی تهیه کنید.

دانلود خودکار پادکست‌ها

می‌توانید پادکست را با عنوان، نشانی RSS یا فایل OPML اضافه کنید و سپس دانلود خودکار قسمت‌های جدید را زمان‌بندی کنید. سرویس یک قسمت را مستقیماً پخش نمی‌کند؛ ابتدا فایل را روی سرور ذخیره می‌کند. این کار آرشیو کردن قسمت‌هایی را که ممکن است ناپدید شوند ممکن می‌کند، اما به فضای دیسک هم نیاز دارد.

نگه‌داشتن کتاب الکترونیکی کنار کتاب صوتی

می‌توانید فایل EPUB، PDF، CBR، CBZ، AZW3 یا MOBI را در پوشه کتاب قرار دهید تا صدا و متن از یک ورودی کتابخانه باز شوند. خواننده داخلی امکانات پایه دارد و جایگزین Calibre-Web یا Kavita نیست.

Audiobookshelf برای چه کسانی مناسب است؟

این سرویس در چند سناریو به‌خصوص کاربردی است:

  • از قبل مجموعه‌ای از کتاب‌های صوتی را در قالب MP3، M4B، M4A یا فرمت‌های رایج دیگر دارید؛
  • با چند دستگاه گوش می‌دهید و همگام‌سازی می‌خواهید؛
  • چند نفر از اعضای خانواده از کتابخانه استفاده می‌کنند؛
  • می‌خواهید آرشیو پادکست شخصی خود را نگه دارید؛
  • کنترل کامل فایل‌ها، حساب‌های کاربری و نسخه‌های پشتیبان را می‌خواهید؛
  • پوشه ابری معمولی به‌دلیل نداشتن جلد، فصل و سابقه شنیدن دیگر راحت نیست.

اگر فقط یک یا دو کتاب را روی یک تلفن گوش می‌دهید، شاید سرور جداگانه لازم نباشد. Audiobookshelf زمانی بیشترین فایده را دارد که مجموعه بزرگ شود یا به دسترسی دائمی از راه دور نیاز داشته باشد.

Audiobookshelf به چه نوع سروری نیاز دارد؟

این پروژه حداقل رسمی و یکسانی برای همه ندارد؛ بار کاری به اندازه کتابخانه، تعداد کاربران، اسکن فایل‌ها و نیاز به تبدیل صوتی بستگی دارد. برای مجموعه شخصی کوچک می‌توانید به‌عنوان راهنما از این پیکربندی شروع کنید:

سناریوCPURAMدیسک
۱ تا ۲ کاربر، کتابخانه کوچک1 vCPU1 GBاز 30–40 GB
استفاده خانوادگی و چند اتصال هم‌زمان2 vCPU2 GBاز 60–100 GB
کتابخانه بزرگ، اسکن و پردازش مکرر فایل2–4 vCPU4 GBمتناسب با اندازه مجموعه

این مقادیر یک راهنمای عملی هستند، نه حداقل رسمی. فضای دیسک مهم‌ترین منبع است. یک کتاب ده‌ساعته با نرخ 64–128 Kbit/s تقریباً 0.3–0.6 GB فضا می‌گیرد؛ بنابراین صد کتاب، بدون پادکست‌ها و پشتیبان‌ها، حدود 30–60 GB نیاز دارد. منطقی است با یک VPS کوچک شروع کنید که بعداً بتوان آن را ارتقا داد.

نصب Audiobookshelf با Docker Compose

Docker روش نصبی است که توسعه‌دهندگان توصیه می‌کنند. مراحل زیر فرض می‌کنند Docker و افزونه Compose از قبل روی Ubuntu یا Debian نصب شده‌اند.

پوشه پروژه و پوشه‌های داده را بسازید:

mkdir -p /opt/audiobookshelf/{config,metadata,audiobooks,podcasts}
cd /opt/audiobookshelf

فایل compose.yml را ایجاد کنید:

services:
  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    container_name: audiobookshelf
    ports:
      - "13378:80"
    volumes:
      - ./config:/config
      - ./metadata:/metadata
      - ./audiobooks:/audiobooks
      - ./podcasts:/podcasts
    environment:
      - TZ=UTC
    restart: unless-stopped

کانتینر را اجرا کنید:

docker compose up -d

پس از راه‌اندازی، داشبورد موقتاً در این نشانی در دسترس است:

http://SERVER_IP:13378

در اولین بازدید حساب مدیر اصلی را بسازید، سپس یک کتابخانه از نوع Books اضافه کنید و مسیر /audiobooks را مشخص کنید. برای پادکست‌ها یک کتابخانه جدا با مسیر /podcasts بسازید.

چگونه پوشه‌های کتاب صوتی را درست سازمان‌دهی کنیم

در Audiobookshelf معمولاً هر کتاب یک پوشه دارد. ساختار واضح به این شکل است:

/audiobooks/
  Author/
    Series/
      01 - Book title/
        01 - Chapter.mp3
        02 - Chapter.mp3
        cover.jpg

برای کتاب مستقل می‌توان سطح مجموعه را حذف کرد. یک فایل M4B را هم می‌توان در پوشه مخصوص همان کتاب نگه داشت.

ساختار اهمیت دارد: اگر چند کتاب از یک نویسنده را در یک پوشه مشترک قرار دهید، اسکنر ممکن است آن‌ها را در یک ورودی کتابخانه ادغام کند. بهتر است فایل‌ها را پیش از نخستین اسکن کامل مرتب کنید. انتقال کتاب بین کتابخانه‌ها به‌عنوان ایجاد یک مورد جدید در نظر گرفته می‌شود، بنابراین فراداده و پیشرفت آن به‌صورت خودکار منتقل نمی‌شوند.

چگونه کتابخانه را با امنیت به اینترنت متصل کنیم

برای استفاده دائمی، باز گذاشتن داشبورد روی پورت HTTP عمومی 13378 توصیه نمی‌شود. برای دسترسی از راه دور بهتر است یک دامنه، گواهی HTTPS و reverse proxy مبتنی بر Nginx، Caddy یا Traefik تنظیم کنید.

Audiobookshelf از WebSocket استفاده می‌کند، بنابراین پشتیبانی از آن باید در proxy فعال باشد. پس از پیکربندی HTTPS، می‌توانید پورت کانتینر را فقط به رابط محلی متصل کنید:

ports:
  - "127.0.0.1:13378:80"

از گذرواژه‌های منحصربه‌فرد استفاده کنید، برای هر شنونده حساب جدا بسازید، کانتینر را به‌روز نگه دارید و مجوز مدیر را بدون ضرورت به کاربران ندهید.

درباره پشتیبان‌ها چه باید بدانید

پشتیبان داخلی Audiobookshelf پایگاه داده و بخشی از فراداده، از جمله جلدهای موجود در پوشه metadata را ذخیره می‌کند. کتاب‌های صوتی، پادکست‌ها و جلدهایی که کنار فایل‌های رسانه‌ای ذخیره شده‌اند در این پشتیبان قرار نمی‌گیرند.

بنابراین راهکار قابل‌اعتماد پشتیبان‌گیری دو بخش دارد:

  1. پشتیبان خودکار داخلی از پایگاه داده و فراداده؛
  2. کپی جداگانه پوشه‌های audiobooks و podcasts روی دیسکی دیگر یا فضای ذخیره‌سازی راه دور.

پوشه /config پایگاه داده SQLite را در خود دارد. توسعه‌دهندگان توصیه می‌کنند آن را روی دیسک محلی همان سرور نگه دارید، نه به‌صورت mount روی شبکه؛ ذخیره‌سازی شبکه ممکن است عملکرد را کاهش دهد و باعث خرابی پایگاه داده شود.

Audiobookshelf روی VPS در tropic.host

برای کتابخانه شخصی، دسترسی دائمی، فضای دیسک کافی و اتصال پایدار از بیشینه توان پردازشی مهم‌تر هستند. Audiobookshelf روی VPS شبانه‌روزی اجرا می‌شود و از تلفن، رایانه یا تبلت در دسترس می‌ماند، مستقل از وضعیت شبکه خانه.

برای مجموعه‌ای کوچک می‌توانید با یک سرور پایه tropic.host شروع کنید، Docker را نصب کنید، دامنه و HTTPS را متصل کنید و با رشد کتابخانه منابع را افزایش دهید. هنگام انتخاب پلن، ابتدا اندازه فایل‌های صوتی را برآورد کنید و برای کتاب‌ها و پادکست‌های جدید جا بگذارید.

محدودیت‌هایی که بهتر است از قبل بدانید

Audiobookshelf کاتالوگ کتاب ارائه نمی‌کند و محافظت DRM را حذف نمی‌کند. این سرویس با فایل‌هایی کار می‌کند که کاربران خودشان اضافه کرده‌اند و حق نگهداری آن‌ها را دارند.

اپلیکیشن‌های موبایل فعالانه توسعه داده می‌شوند و رسماً هنوز وضعیت بتا دارند؛ بنابراین رابط وب یا PWA یک گزینه پشتیبان مفید است. پشتیبانی از کتاب الکترونیکی پایه است و وارد کردن مرتب یک مجموعه بزرگ به رعایت ساختار پوشه و گاهی اصلاح دستی فراداده نیاز دارد.

برای کتاب‌های صوتی، این سرویس همه چیزهایی را فراهم می‌کند که یک پوشه ابری معمولی ندارد: فصل‌ها، مجموعه‌ها، پیگیری پیشرفت، دانلود آفلاین، پروفایل‌ها و پشتیبانی از پادکست.

جمع‌بندی

Audiobookshelf فایل‌های صوتی را به یک کتابخانه رسانه‌ای شخصی برای چند دستگاه و کاربر تبدیل می‌کند. نصب با Docker Compose ساده است، اما برای عملکرد قابل‌اعتماد به ساختار مرتب پوشه‌ها، HTTPS و پشتیبان‌های جداگانه از فایل‌های رسانه‌ای نیاز دارید.

FAQ

آیا Audiobookshelf رایگان است؟

بله. سرور و کلاینت‌های رسمی به‌صورت نرم‌افزار متن‌باز منتشر می‌شوند. فقط اگر از سخت‌افزار، VPS، دامنه یا فضای ذخیره اضافی استفاده کنید، هزینه همان موارد را می‌پردازید.

آیا Audiobookshelf کتاب صوتی رایگان ارائه می‌دهد؟

خیر. این سرویس سرور و پخش‌کننده مجموعه شخصی شماست. باید فایل‌های صوتی را به‌صورت قانونی تهیه و خودتان به کتابخانه اضافه کنید.

آیا می‌توانم بدون اینترنت به کتاب‌ها گوش دهم؟

بله. اپلیکیشن موبایل امکان می‌دهد کتاب را از قبل روی دستگاه دانلود کنید. پس از دانلود، برای شنیدن به اتصال با سرور نیاز ندارید.

Audiobookshelf به چه مقدار RAM نیاز دارد؟

برای کتابخانه‌ای کوچک و یک یا دو کاربر، 1 GB RAM نقطه شروع مناسبی است. برای چند شنونده، اسکن گسترده یا پردازش فایل بهتر است 2–4 GB انتخاب کنید.

آیا حتماً باید Audiobookshelf را روی VPS نصب کنم؟

خیر. این سرویس روی سرور خانگی، NAS یا رایانه سازگار هم اجرا می‌شود. VPS زمانی راحت‌تر است که به دسترسی شبانه‌روزی از شبکه‌های مختلف نیاز دارید و نمی‌خواهید روتر خانه را تنظیم کنید یا به اتصال منزل وابسته باشید.