VPS-এ Audiobookshelf: নিজের অডিওবুক ও পডকাস্ট লাইব্রেরি

1 মিনিট পড়া
Tropic
VPS-এ Audiobookshelf: নিজের অডিওবুক ও পডকাস্ট লাইব্রেরি

Audiobookshelf: নিজের অডিওবুক ও পডকাস্ট সার্ভার তৈরি করার উপায়

কম্পিউটারে একটি বই শোনা শুরু করে ফোনে একই জায়গা থেকে চালিয়ে যাওয়া, ভ্রমণের আগে সেটি ডাউনলোড করা এবং ডিভাইস বদলানোর পরেও অগ্রগতি ধরে রাখা—এসবের জন্য আরেকটি পেইড সার্ভিসের ওপর নির্ভর করতে হয় না। Audiobookshelf আপনার নিজের অডিও সংগ্রহকে প্রচ্ছদ, অধ্যায়, অ্যাপ এবং পুরো পরিবারের জন্য আলাদা প্রোফাইলসহ একটি গোছানো অনলাইন লাইব্রেরিতে পরিণত করে।

এটি কোনো স্টোর বা বিনামূল্যের বই পাওয়ার উৎস নয়। ব্যবহারকারীকেই আইনসম্মতভাবে সংগ্রহ করা এবং অসামঞ্জস্যপূর্ণ DRM সুরক্ষা নেই—এমন অডিও ফাইল যোগ করতে হবে। এর বিনিময়ে বই, শোনার ইতিহাস এবং সেটিংস নিজের সার্ভারেই থাকে।

Audiobookshelf কী?

Audiobookshelf হলো অডিওবুক ও পডকাস্টের জন্য বিনামূল্যের, ওপেন-সোর্স এবং self-hosted সার্ভার। এটি মিডিয়া ফাইলের ফোল্ডার স্ক্যান করে, লেখক ও সিরিজ অনুযায়ী লাইব্রেরি সাজায়, মেটাডেটা ও প্রচ্ছদ সংগ্রহ করে, তারপর ব্রাউজার বা মোবাইল অ্যাপের মাধ্যমে সংগ্রহ শোনার সুযোগ দেয়।

ব্যবহারিকভাবে এটি একটি ব্যক্তিগত স্ট্রিমিং সার্ভিস, যার ক্যাটালগ আপনি নিজেই তৈরি করেন। সার্ভার লাইব্রেরি ও শোনার অগ্রগতি সংরক্ষণ করে, আর ফোন, ট্যাবলেট বা কম্পিউটার ক্লায়েন্ট হিসেবে কাজ করে। ফলে একটি ডিভাইসে বই থামিয়ে অন্য ডিভাইসে সংরক্ষিত অবস্থান থেকে আবার শুরু করা যায়।

Audiobookshelf বাড়িতে NAS বা mini PC-তে চালানো যায়। যেকোনো নেটওয়ার্ক থেকে প্রবেশাধিকার দরকার হলে, বাড়ির কম্পিউটার চালু রাখা, port forwarding কনফিগার করা বা ঘরের ইন্টারনেট সংযোগের ওপর নির্ভর করার বদলে VPS বেশি সুবিধাজনক।

Audiobookshelf কী কী করতে পারে?

বিভিন্ন ডিভাইসে অগ্রগতি সিঙ্ক্রোনাইজ করা

প্রত্যেক ব্যবহারকারীর নিজের সংরক্ষিত অবস্থান, ইতিহাস এবং বুকমার্ক থাকে। ওয়েব ইন্টারফেস, Progressive Web App এবং Android ও iOS-এর জন্য অফিসিয়াল মোবাইল ক্লায়েন্ট রয়েছে। আগে থেকেই ফোনে বই ডাউনলোড করে ইন্টারনেট ছাড়াই শোনা যায়।

আলাদা অ্যাকাউন্ট তৈরি করা

একই সার্ভারে একাধিক ব্যবহারকারী তৈরি করা যায়, তাই তাদের শোনার অগ্রগতি একে অপরের সঙ্গে মিশে যায় না। প্রশাসক লাইব্রেরি ও অনুমতিতে প্রবেশাধিকার নিয়ন্ত্রণ করতে পারেন এবং প্রয়োজনে ট্যাগ অনুযায়ী কনটেন্ট সীমিত করতে পারেন। প্রত্যেক ব্যবহারকারীর চলমান বই, ইতিহাস এবং বুকমার্কের আলাদা তালিকা থাকে।

লাইব্রেরি সাজানো

সার্ভিসটি বাহ্যিক উৎস থেকে শিরোনাম, বর্ণনা, লেখক ও প্রচ্ছদ সংগ্রহ করে, লেখক ও সিরিজ অনুযায়ী বই সাজায় এবং অধ্যায় সংশোধন ও ক্রম নির্ধারণের সুযোগ দেয়। একাধিক MP3 ফাইল একত্র করে একটি M4B ফাইলে রূপান্তর করা যায়, আর প্রচ্ছদ ও মেটাডেটা ফাইলের ভেতরে যুক্ত করা যায়। মূল ফাইল পরিবর্তনের আগে লাইব্রেরির একটি কপি রাখা ভালো।

স্বয়ংক্রিয়ভাবে পডকাস্ট ডাউনলোড করা

শিরোনাম, RSS URL বা OPML ফাইলের মাধ্যমে পডকাস্ট যোগ করা যায়। এরপর নতুন এপিসোড স্বয়ংক্রিয়ভাবে ডাউনলোডের সময়সূচি নির্ধারণ করা যায়। সার্ভিসটি সরাসরি কোনো এপিসোড স্ট্রিম করে না: ফাইলটি আগে সার্ভারে সংরক্ষিত হয়। এতে পরে হারিয়ে যেতে পারে এমন এপিসোড আর্কাইভ করা সম্ভব, তবে অতিরিক্ত ডিস্ক স্পেস প্রয়োজন হবে।

অডিওবুকের সঙ্গে ই-বুক রাখা

একই লাইব্রেরি এন্ট্রি থেকে অডিও ও লেখা খোলার জন্য বইয়ের ফোল্ডারে EPUB, PDF, CBR, CBZ, AZW3 বা MOBI ফাইল রাখা যায়। বিল্ট-ইন রিডারটি সাধারণ ধরনের এবং Calibre-Web বা Kavita-এর বিকল্প নয়।

Audiobookshelf কার জন্য?

কয়েকটি পরিস্থিতিতে সার্ভিসটি বিশেষভাবে উপকারী:

  • আপনার কাছে MP3, M4B, M4A বা অন্য প্রচলিত ফরম্যাটে অডিওবুকের সংগ্রহ রয়েছে;
  • আপনি একাধিক ডিভাইসে শোনেন এবং সিঙ্ক্রোনাইজেশন চান;
  • পরিবারের একাধিক সদস্য লাইব্রেরি ব্যবহার করেন;
  • নিজের পডকাস্ট আর্কাইভ সংরক্ষণ করতে চান;
  • ফাইল, ব্যবহারকারী অ্যাকাউন্ট এবং ব্যাকআপের ওপর সম্পূর্ণ নিয়ন্ত্রণ চান;
  • সাধারণ ক্লাউড ফোল্ডারে প্রচ্ছদ, অধ্যায় ও শোনার ইতিহাস না থাকায় সেটি অসুবিধাজনক হয়ে উঠেছে।

একটি ফোনে মাত্র এক বা দুটি বই শুনলে আলাদা সার্ভারের প্রয়োজন নাও হতে পারে। সংগ্রহ বড় হলে বা নিয়মিত দূরবর্তী প্রবেশাধিকার দরকার হলে Audiobookshelf সবচেয়ে বেশি কাজে আসে।

Audiobookshelf-এর জন্য কেমন সার্ভার দরকার?

প্রকল্পটির কোনো সর্বজনীন অফিসিয়াল ন্যূনতম প্রয়োজন নেই: লাইব্রেরির আকার, ব্যবহারকারীর সংখ্যা, ফাইল স্ক্যান এবং অডিও transcoding দরকার কি না—এসবের ওপর লোড নির্ভর করে। ছোট ব্যক্তিগত সংগ্রহের জন্য নিচের স্টার্টিং কনফিগারেশনটি নির্দেশনা হিসেবে ব্যবহার করা যায়:

পরিস্থিতিCPURAMডিস্ক
১–২ জন ব্যবহারকারী, ছোট লাইব্রেরি1 vCPU1 GB30–40 GB থেকে
পারিবারিক ব্যবহার ও একাধিক একসঙ্গে সংযোগ2 vCPU2 GB60–100 GB থেকে
বড় লাইব্রেরি, ঘন ঘন স্ক্যান ও ফাইল প্রসেসিং2–4 vCPU4 GBসংগ্রহের আকার অনুযায়ী

এটি অফিসিয়াল ন্যূনতম নয়, ব্যবহারিক নির্দেশনা। প্রধান সম্পদ হলো ডিস্ক স্পেস। 64–128 Kbit/s-এ দশ ঘণ্টার একটি বইয়ের আকার আনুমানিক 0.3–0.6 GB, তাই একশোটি বইয়ের জন্য পডকাস্ট ও ব্যাকআপ বাদে প্রায় 30–60 GB লাগতে পারে। পরে আপগ্রেড করা যাবে—এমন ছোট VPS দিয়ে শুরু করাই যুক্তিযুক্ত।

Docker Compose দিয়ে Audiobookshelf ইনস্টল করার উপায়

ডেভেলপাররা Docker-কে প্রস্তাবিত ইনস্টলেশন পদ্ধতি হিসেবে উল্লেখ করেন। নিচের ধাপগুলো ধরে নেওয়া হয়েছে যে Ubuntu বা Debian-এ Docker এবং Compose plugin আগে থেকেই ইনস্টল করা আছে।

প্রকল্পের ডিরেক্টরি ও ডেটা ফোল্ডার তৈরি করুন:

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

প্রথমবার প্রবেশ করে root administrator অ্যাকাউন্ট তৈরি করুন। এরপর Books ধরনের একটি লাইব্রেরি যোগ করে /audiobooks ডিরেক্টরি নির্দিষ্ট করুন। পডকাস্টের জন্য /podcasts path দিয়ে আলাদা লাইব্রেরি তৈরি করুন।

অডিওবুকের ফোল্ডার সঠিকভাবে সাজানোর উপায়

Audiobookshelf-এ সাধারণত একটি বইয়ের জন্য একটি ফোল্ডার রাখা হয়। পরিষ্কার কাঠামোটি এমন হতে পারে:

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

একক বইয়ের ক্ষেত্রে Series স্তর বাদ দেওয়া যায়। একটি M4B ফাইলও নিজের বইয়ের ফোল্ডারে রাখা যায়।

কাঠামো গুরুত্বপূর্ণ: একই লেখকের একাধিক বই একটি শেয়ার করা ফোল্ডারে রাখলে scanner সেগুলোকে একটি লাইব্রেরি এন্ট্রিতে একত্র করতে পারে। প্রথম সম্পূর্ণ স্ক্যানের আগে ফাইল সাজিয়ে নেওয়া ভালো। একটি লাইব্রেরি থেকে অন্যটিতে বই সরানোকে নতুন item তৈরি হিসেবে ধরা হয়, তাই মেটাডেটা ও অগ্রগতি স্বয়ংক্রিয়ভাবে স্থানান্তরিত হয় না।

নিরাপদে ইন্টারনেটে লাইব্রেরি প্রকাশ করার উপায়

স্থায়ী ব্যবহারের জন্য ড্যাশবোর্ডের HTTP port 13378 সরাসরি খোলা রাখা সুপারিশ করা হয় না। দূরবর্তী প্রবেশাধিকারের জন্য domain, HTTPS certificate এবং Nginx, Caddy বা Traefik-ভিত্তিক reverse proxy ব্যবহার করা ভালো।

Audiobookshelf WebSocket ব্যবহার করে, তাই proxy-তে এর সমর্থন সক্রিয় করতে হবে। HTTPS কনফিগার করার পর কনটেইনারের port শুধু local interface-এ bind করা যায়:

ports:
  - "127.0.0.1:13378:80"

অনন্য পাসওয়ার্ড ব্যবহার করুন, প্রত্যেক শ্রোতার জন্য আলাদা অ্যাকাউন্ট তৈরি করুন, কনটেইনার আপডেট রাখুন এবং অপ্রয়োজনীয়ভাবে administrator permission দেবেন না।

ব্যাকআপ সম্পর্কে যা জানা দরকার

Audiobookshelf-এর built-in backup ডেটাবেস ও কিছু মেটাডেটা সংরক্ষণ করে, যার মধ্যে metadata ডিরেক্টরির প্রচ্ছদও রয়েছে। মিডিয়া ফাইলের পাশে রাখা অডিওবুক, পডকাস্ট ও প্রচ্ছদ এই ব্যাকআপে অন্তর্ভুক্ত হয় না।

তাই নির্ভরযোগ্য ব্যাকআপ কৌশলের দুটি অংশ থাকে:

  1. ডেটাবেস ও মেটাডেটার স্বয়ংক্রিয় built-in backup;
  2. অন্য ডিস্ক বা remote storage-এ audiobookspodcasts ডিরেক্টরির আলাদা কপি।

/config ডিরেক্টরিতে SQLite ডেটাবেস থাকে। ডেভেলপাররা এটিকে নেটওয়ার্কের ওপর mount না করে একই সার্ভারের local disk-এ রাখার পরামর্শ দেন: network storage কর্মক্ষমতা কমাতে পারে এবং ডেটাবেস নষ্ট হওয়ার কারণ হতে পারে।

tropic.host-এর VPS-এ Audiobookshelf

ব্যক্তিগত লাইব্রেরির জন্য সর্বোচ্চ computing power-এর চেয়ে অবিচ্ছিন্ন availability, পর্যাপ্ত ডিস্ক স্পেস এবং স্থিতিশীল সংযোগ বেশি গুরুত্বপূর্ণ। VPS-এ Audiobookshelf সারাক্ষণ চলে এবং বাড়ির নেটওয়ার্কের অবস্থা নির্বিশেষে ফোন, কম্পিউটার বা ট্যাবলেট থেকে পাওয়া যায়।

ছোট সংগ্রহের জন্য tropic.host-এর একটি basic server দিয়ে শুরু করা যায়, Docker ইনস্টল করে domain ও HTTPS সংযুক্ত করুন, তারপর লাইব্রেরি বড় হলে resources বাড়ান। plan বাছাইয়ের সময় প্রথমে অডিও ফাইলের আকার হিসাব করুন এবং নতুন বই ও পডকাস্টের জন্য কিছু অতিরিক্ত জায়গা রাখুন।

আগে থেকে জানা দরকার এমন সীমাবদ্ধতা

Audiobookshelf কোনো বইয়ের catalog সরবরাহ করে না এবং DRM protection সরায় না। ব্যবহারকারীকেই নিজের যোগ করা এবং সংরক্ষণের অধিকার থাকা ফাইল ব্যবহার করতে হবে।

মোবাইল অ্যাপগুলো সক্রিয়ভাবে উন্নয়নাধীন এবং অফিসিয়ালি beta status-এ রয়েছে, তাই web interface বা PWA কার্যকর বিকল্প হিসেবে থাকে। ই-বুক সমর্থন basic, আর বড় সংগ্রহ সুন্দরভাবে import করতে folder structure মেনে চলতে এবং মাঝে মাঝে মেটাডেটা হাতে ঠিক করতে হয়।

অডিওবুকের ক্ষেত্রে সাধারণ cloud folder-এ যে সুবিধাগুলো থাকে না, এই সার্ভিসে সেগুলো পাওয়া যায়: chapters, series, progress tracking, offline downloads, profiles এবং podcast support।

উপসংহার

Audiobookshelf অডিও ফাইলকে একাধিক ডিভাইস ও ব্যবহারকারীর জন্য ব্যক্তিগত media library-তে পরিণত করে। Docker Compose দিয়ে ইনস্টল করা সহজ, তবে নির্ভরযোগ্যভাবে চালাতে গোছানো folder structure, HTTPS এবং media file-এর আলাদা backup দরকার।

FAQ

Audiobookshelf কি বিনামূল্যে?

হ্যাঁ। সার্ভার ও অফিসিয়াল client open-source software হিসেবে বিতরণ করা হয়। hardware, VPS, domain বা অতিরিক্ত storage ব্যবহার করলে শুধু সেগুলোর খরচ দিতে হবে।

Audiobookshelf কি বিনামূল্যের অডিওবুক দেয়?

না। এটি আপনার নিজের সংগ্রহের server ও player। অডিও ফাইল আইনসম্মতভাবে সংগ্রহ করে নিজেকেই লাইব্রেরিতে যোগ করতে হবে।

ইন্টারনেট ছাড়া কি বই শোনা যাবে?

হ্যাঁ। মোবাইল অ্যাপের মাধ্যমে আগে থেকেই ডিভাইসে বই ডাউনলোড করা যায়। ডাউনলোডের পর শোনার জন্য সার্ভারের সংযোগ দরকার হয় না।

Audiobookshelf-এর কত RAM দরকার?

ছোট লাইব্রেরি এবং এক বা দুজন ব্যবহারকারীর জন্য 1 GB RAM যুক্তিসঙ্গত শুরু। একাধিক শ্রোতা, ব্যাপক scanning বা file processing থাকলে 2–4 GB বেছে নেওয়া ভালো।

Audiobookshelf কি VPS-এই ইনস্টল করতে হবে?

না। এটি home server, NAS বা উপযুক্ত কম্পিউটারেও চলতে পারে। home router কনফিগার না করে এবং বাড়ির সংযোগের ওপর নির্ভর না করে বিভিন্ন নেটওয়ার্ক থেকে সারাক্ষণ প্রবেশাধিকার চাইলে VPS বেশি সুবিধাজনক।