دسته‌بندی نشده

Home Media Server 101

تعداد زیادی فیلم، سریال، آلبوم موسیقی، کتاب، کتاب صوتی و کامیک بوک به صورت دیجیتال ذخیره کردیم (ضبط شده از تلویزیون، خرید نسخهٔ آنلاین، دانلود قانونی و غیرقانونی). برای استفاده از این فایل‌ها چه راهی بهتر است؟ چگونه در همه جای خانه (و حتی بیرون از خانه) فارغ از deviceای که در دسترس داریم به این فایل‌ها دسترسی داشته باشیم؟ چه طور وضعیت پیشرفت در تماشا را بین deviceها حفظ کنیم؟ اگر بدانیم چندقسمت از کدام سریال را دیده‌ایم و قسمت بعدی چه روز و ساعتی پخش خواهد شد بهتر نیست؟ چه طور به همه ساکنین خانه دسترسی جداگانه با همهٔ امکانات بدهیم که هرکسی profile خود را داشته باشد؟

بهترین کار این است که یک Media Server شخصی راه اندازی کنیم. تصور کنید که برای خودتان چیزی شبیه Netflix یا Amazon Prime Video، Spotify (یا نمونه‌های داخلی مثل نماوا و فیلیمو) داشته باشید با محتوایی که خودتان انتخاب و مدیریت می‌کنید.

Jellyfin تقریبا هرنوع محتوایی را پشتیبانی می‌کند، از فیلم و سریال تا موسیقی و کتاب. منتها تمرکز توسعه‌دهندگان روی محتوای تصویری است و خودشان توصیه می‌کنند برای بقیهٔ موارد از گزینه‌های (تخصصی‌تر) دیگری استفاده شود. در انتها در مورد این موارد هم صحبت خواهیم کرد.

گام اول؛ جمع آوری و مرتب کردن محتوا

چگونگی جمع آوری محتوا بر عهدهٔ خودتان 🙂 مهمتر اینست که محتوای شما به شکل درست و قابل فهمی مرتب شده باشد.

برای فیلم‌ها شیوهٔ مرسوم این است که یک پوشهٔ اصلی (مثال: movies) داشته باشیم. هر فیلم در یک پوشه به اسم «عنوان فیلم به همراه سال ساخت» آن قرار می‌گیرد. اسم فایل خود فیلم هم به صورت «عنوان فیلم + سال ساخت» باید باشد.

مثال:

Movies/Airplane! (1980)/Airplane!.1980.mkv

دقت کنید که به جای فاصله در عنوان فایل‌ها بهتر است که از «.» استفاده کنید.

برای سریال‌ها هم وضع مشابه است با کمی تفاوت.

پوشه اصلی/نام سریال+ سال ساخت/شماره فصل/نام سریال+شماره قسمت

مثال:

Series/Police Squad!(1982)/S01/Police.Squad!.1982.S01E01.A.Substantial.Gift.The.Broken.Promise.1080p.BDRip.x265.10bit.EAC3.5.1.mkv

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

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

Music/Artist/Album

مثال:

Music/RAMMSTEIN/Rammstein – Dem Regen (2014)

برای چند فایل و آلبوم این کار ساده است ولی اگر تعداد محتوا بالا بود چه؟

می‌توانید از نرم‌افزارهای مخصوص این کار استفاده کنید. MediaElch و tinyMediaManager دوتا از معروفترین نمونه‌ها هستند. اگر قصد استفاده از Torrent و Usenet برای جمع‌آوری محتوا دارید هم می‌توانید از Radarr/Sonarr/Lidarr/Sickbeard و نمونه‌های مشابه استفاده کنید که دانلود و مرتب سازی را به صورت خودکار انجام می‌دهند.

کار با MediaElch و tinyMediaManager ساده است. کافیست نرم‌افزار را باز کرده و پوشهٔ مورد نظر را معرفی، نوع محتوا را مشخص کنید. بقیهٔ کارها خود به خود انجام می‌شود.

نرم افزار tineMediaManager می‌تواند Meta data، پسترها، تصاویر مربوطه و لینک به تریلرهای فیلم و سریال را پیدا و ذخیره کند.

گام دوم؛ راه‌اندازی Media Server

قبل از هرچیز به یک کامپیوتر نیاز داریم که همیشه روشن و به اینترنت (و شبکهٔ داخلی) متصل باشد. اگر در پی یک راه‌حل کم هزینه و کم مصرف هستید یکی از انواع Raspberry Pi هم برای هدف ما کافیست. اگر از قبل NAS دارید از آن هم می‌توانید استفاده کنید (هم برای نگهداری فایل‌ها هم به عنوان server).

برای مدیریت سرور راه‌حل‌های زیادی وجود دارد. مشهورترین‌ها Plex، Emby و Jellyfin هستند. من از Plex استفاده نمی‌کنم، چون هم کیفیت فایل‌ها را پایین می‌آورد (تقریبا همیشه transcode می‌کند) هم برای استفاده باید بیشتر مواقع به سرور اصلی plex.tv متصل شود که دسترسی به این سرویس در ایران (با توجه به فیلتر بودنش) کم مشکل ساز نیست. Emby گزینهٔ بهتریست ولی در نظر داشته باشید که برای تماشای محتوای خودتان باید یا اشتراک تهیه کنید (از ماهی ۵ دلار به بالا) یا برای اپلیکیشن تکی هزینه بپردازید (حدود ۵ دلار).

گزینهٔ اصلی مورد استفاده در این راهنما Jellyfin است که برپایهٔ Emby نوشته شده است بدون محدودیت‌های آن.

با استفاده از JF می‌توانید محتوای خود را بر این دیوایس‌ها تماشا کنید:

Android Phones and Tablet

Android TV

iPhone

iPad

Xbox One Family

LG Smart TV (Web OS)

Windows/Linux/Mac OS

شاید شما Apple TV و یا Play Station 4 داشته باشید. در مورد Apple TV می‌توانید از اپلیکیشن‌های شخص ثالت MrMC و Infuse استفاده کنید. هردوی این اپلیکیشن‌ها روی iPhone و iPad هم نصب می‌شوند. دقت کنید که برای استفاده از تمام امکانات این دو اپلیکیشن باید نسخهٔ Pro را تهیه کنید. نکتهٔ مهم بعدی: Infuse تنها از محتوای ویدیویی پشتیبانی می‌کند. برای PS4 می‌توانید از DLNA استفاده کنید که البته ایده‌آل نیست. از DLNA در هر دیوایسی که این ویژگی را پشتیبانی کند می‌توانید استفاده کنید، مانند بیشتر تلوزیون‌های هوشمند و حتی VLC.

برای تماشای محتوای تصویری روی کامپیوتر، ساده‌ترین راه مرورگر وب است. فرقی ندارد که انتخاب شما Google Chrome باشد یا FireFox یا Safari و Microsoft Edge و یا حتی Brave و Vivaldi. با یک مرورگر وب به همهٔ محتوای خود دسترسی خواهید داشت. اما با توجه به محدودیت‌های مرورگرها در پخش codecها و فرمت‌های صوتی و تصویری ممکن است برای پخش با مشکل مواجه شوید. گزینهٔ بهتر در این شرایط Jellyfin-MPV-Shim است که با بهره‌گیری از MPV قادر است هر نوع codec و فرمتی را بدون محدودیت و بدون نیاز به Transcode در سرور پخش کند. نکته: در حال حاضر فقط محتوای ویدیویی را پخش می‌کند.

با رفتن به jellyfin.org نسخهٔ مربوط به سیستم عامل سرورتان را دانلود و نصب کنید. پس از نصب و اجرا، به http://localhost:8096 وارد خواهید شد. راه‌اندازی JF ساده است. کافیست در این مرحله اطلاعاتی که پرسیده می‌شود را وارد کنید، library خود را به سرور معرفی کنید و صبر کنید تا شناسایی به صورت کامل انجام شود (برحسب تعداد فایل‌ها ممکن است بین چند دقیقه تا چند روز طول بکشد).

برای دسترسی به فایل‌ها، روی دیوایس موردنظرتان کلاینت JF را نصب کنید. کافیست تا داخل همان شبکه باشید تا با وارد کردن مشخصات سرور (به صورت عادی همان http://localhost:8096 و نام کاربری و رمز عبوری که در مرحلهٔ راه‌اندازی وارد کرده بودید) به سرور وصل شوید.

Jellyfin پس از نصب و اسکن فایل‌ها
صفحهٔ یک سریال در Jellyfin
در صفحهٔ هر قسمت (یا فیلم) می‌توانید حاشیهٔ صوتی و زیرنویس را (در صورت وجود) انتخاب کنید.

گام سوم؛ تنظیمات اضافی

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

با وصل کردن سرور به trakt می‌توانید روند پیشرفت تماشا را با این سرویس sync کنید و از زمان پخش قسمت‌های بعدی سریال‌های موردعلاقه‌اتان آگاه شوید.

با استفاده از TMDB Box Sets می‌توانید فیلم‌ها را به صورت Collection دسته‌بندی کنید (Hobbit Collection به عنوان مثال).

کلکسیون Star Wars

می‌توانید با استفاده از OMBI این امکان را به کاربرانتان بدهید که درخواست اضافه شدن فیلم و سریال بکنند و از وضعیت درخواست‌های قبلیشان آگاه شوند.

می‌توانید با ارسال notification در ایمیل یا Discord یا Telegram کاربران را از اضافه شدن محتوا با خبر کنید.

کاربر می‌تواند تماشای یک محتوا را روی یک دیوایس (مثلا iPad) شروع کند و پس از توقف به تماشا روی یک دیوایس دیگر (مثلا Android TV) ادامه دهد.


گام چهارم؛ کتابخانه‌ای برای کتاب‌های دیجیتال

در ابتدای راهنما گفته شد که JF از کتاب هم پشتیبانی می‌کند ولی نتیجه خیلی مطلوب نیست. برای شما که کتاب‌هایتان را به یکی از فرمت‌های EPUB، MOBI، PDF یا AZW3 نگهداری می‌کنید یکی از بهترین ابزارها Calibre است. این نرم‌افزار که روی تمام سیستم‌عامل‌های دسکتاپ نصب می‌شود به شما امکان مدیریت کامل کتابخانه را می‌دهد. کافیست فایل‌های کتاب‌ها را به پنجرهٔ Calibre کشیده و رها کنید. Calibre برحسب meta dataای که همراه فایل است کتاب شما را دسته‌بندی و مرتب می‌کند. اگر کتاب شما فاقد meta data است یا این اطلاعات اشتباه است نگران نباشید. با Calibre می‌توانید اطلاعات هر کتاب را اصلاح کنید. اگر اطلاعات همراه فایل کتاب ناقص باشد (مثلا فقدان اسم ناشر یا سال انتشار یا شابک یا نداشتن تصویر جلد) Calibre اطلاعات کتاب را از منابع آنلاینی مثل Amazon و Google Books تکمیل و ذخیره می‌کند.

پنجرهٔ پیش‌فرض Calibre
مطالعهٔ کتاب با استفاده از Calibre

همچنین با استفاده از Calibre می‌توانید کتاب‌هایتان را به کتاب‌خوان دیجیتال مورد نظرتان (Kindle، Nook و حتی فیدیبوک) منتقل کنید.

اما این تمام امکانات Calibre نیست. به صورت پیش‌فرض می‌توانید با استفاده از web server داخلی Calibre از طریق مرورگر به کتاب‌هایتان دسترسی داشته باشید. این وب سرور به شما امکان مرور همه کتاب‌ها، دریافت و حتی مطالعه داخل مرورگر را می‌دهد. این بخش امکانات خوبی دارد ولی (مثل خود Calibre) ظاهری نامناسب دارد و با مرورگرهای کمی قدیمی‌تر به درست کار می‌کند.

فهرست کتاب‌ها در Calibre از طریف مرورگر وب
مشاهدهٔ یک کتاب از طریق مرورگر وب که تجربهٔ بصری خوبی نیست

اینجاست که می‌توانید از web appای به نام Calibre-web استفاده کنید.

Calibre-web یک وب اپ با ظاهری مدرن است که به شما قابلیت مرور، خواندن و دریافت کتاب‌ها از یک دیتابیس Calibre را می‌دهد.

کافیست این وب اپ را که با Python نوشته شده دریافت، نصب و راه‌اندازی کنید. تنها چیزی که لازم دارید مسیر فایل دیتابیس Calibre (به اسم (metadata.db است. فراموش نکنید که همچنان به Calibre برای ذخیرهٔ تغییرات آتی در کتابخانه نیاز دارید.

فهرست کتاب‌ها در مرورگر وب با استفاده از Calibre-Web

گام پنجم؛ کامیک بوک‌ها

کامیک بوک‌های شما حتما باید به یکی از فرمت‌های CBR، CBZ یا RAR باشند.

یکی از ساده‌ترین راه‌حل‌ها برای مدیریت کتابخانه‌ای از کامیک‌بوک YACTReader است. بعد از نصب، با دو نرم‌افزار دوربرو هستید: YACReader و YACreaderLibrary. اولی مخصوصا خواندن است و دومی کتابخانهٔ شما. کافیست پوشهٔ حاوی کامیک بوک‌ها را به دومی معرفی کنید تا مراحل اسکن و جمع‌آوری اطلاعات از منابع آنلاین به سرعت انجام شود.

YACReader Library
مطالعه با YACReader

گام ششم؛ موسیقی (و کتاب‌های صوتی)

برای مدیریت موسیقی (و کتاب‌های صوتی) می‌توانید از راه‌حل‌های زیادی استفاده کنید. از MPD و Mopidy گرفته تا Subsonic (و همهٔ Forkهای آن: Airsonic، LibreSonic و …). انتخاب من Airsonic Advanced است. نصب، اجرا و راه‌اندازی همهٔ این Forkها کمابیش یکسان است. فایل .war را دانلود می‌کنید. مطمئن می‌شوید که آخرین نسخهٔ JDK نصب است و فایل .war را در ترمینال اجرا می‌کنید (در ویندوز کمی متفاوت است. حتما راهنمای نصب را با دقت مطالعه کنید).

پس از اولین اجرا، در مرورگر نشانی http://localhost:8080 را اجرا کنید. با پیغام ورود روبرو خواهید. با نام کاربری و رمز admin وارد شوید. بهتر است که پیش از هرکاری رمز عبور را تغییر دهید.

در مرحلهٔ بعد کافیست پوشهٔ حاوی موسیقی (و کتاب‌های صوتی) را به Airsonic معرفی کنید. چند دقیقهٔ بعد Airsonic آمادهٔ استفاده است.

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

سرعت Airsonic در اسکن کردن library و پیداکردن اطلاعات درست بالاست.

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

Airsonic

اضافات

شاید شما تنها یک دیوایس دارید (مثلا یک Android TV یا Apple TV) و فقط می‌خواهید محتوای ویدیویی خود را بدون نیاز به سرور تماشا کنید. برای Apple TV می‌توانید از Infuse و برای Android TV می‌توانید از NOVA Player استفاده کنید. کافیست که محتوای خود را با SMB یا SFTP یا NFS با NOVA یا Infuse به اشتراک بگذارید.
در نظر داشته باشید که با توجه به تعداد فایل‌ها، اسکن کردن ممکن است تا چند روز طول بکشد.


اضافات ۲

اگر می‌خواهید به هر کدام از موارد بالا خارج از خانه هم دسترسی داشته باشید یا حتی اگر علاقه‌ای به نشانی‌هایی مثل localhost:8080 ندارید لازم است که روی سرورتان Reverse Proxy را تنظیم کنید. این کار را می‌توانید با یکی از وب‌سرورهای Apache، Nginx، Caddy و گزینه‌های دیگر انجام دهید. توضیحات بیشتر را در بخش راهنمای Jellyfin بخوانید.

تکمله

این راهنما تنها برای آشنایی با این کار نوشته شده و تنها کلیات را پوشش می‌دهد.

Abominability*

Apparently I am tolerable to some point, superficial mostly. The moment things get a tad bit intimate, the other party (without a single exception, regardless of the nature of the connection) realizes the dull tedious boring monster which has been lurking around, waiting for a chance to attack them.
However that is not the problematic part (troublesome? sure. But I am used to it by now). What bothers me most is the ways they choose to rid of me. In more than one occasion, I was told that they are not into men. “Yay, good for you, I applaud your courage.”. Only to be introduced to their new male partners in a matter of days.
A great number of my friendships ended up with them vanishing in thin air. Out of no where, in a sunny great looking morning, they stopped talking to me.
Again, given the frequency of it, the definitive culprit is me and only me. No argue there.

*Not sure even “Abominability” is a word.