প্রকল্প সম্পর্কে

Opal হলো একটি ফ্রি, ওপেন-সোর্স, লোকাল-ফার্স্ট মিডিয়া প্লেয়ার ও ব্রাউজার, যা আলাদা আলাদা অনেক টুল—একটি প্লেয়ার, একটি স্ট্রিমিং সাইট, একটি সার্ভার ফ্রন্ট-এন্ড, একটি টরেন্ট ক্লায়েন্ট এবং একটি ফিড—প্রতিস্থাপন করার লক্ষ্য নিয়ে তৈরি। এটি Zig, dvui ও mpv দিয়ে তৈরি একটি নেটিভ বাইনারি হিসেবে বিতরণ করা হয়, এবং macOS (Apple silicon) ও Linux x86_64-কে টার্গেট করে; Windows x64 সাপোর্টকে আলফা বলা হয়েছে এবং তা এখনো সমমানের নয়। এটি কী করে একটি একক সার্চ বক্স একটি কোয়েরি সব কনফিগার করা সোর্সে ছড়িয়ে দেয় এবং একটি র‍্যাঙ্ক করা, প্লে-যোগ্য তালিকা ফেরত দেয়। সোর্সের মধ্যে রয়েছে লোকাল ডিস্ক, টরেন্ট, Jellyfin, Plex, Stremio, অ্যানিমে, YouTube, লাইভ টিভি, TMDB মেটাডেটা ও মাঙ্গা। টরেন্ট ম্যাগনেট ফাইলের মতো আচরণ করে: প্লে চাপলে ডাউনলোড চলতে থাকার সময়ই স্ট্রিমিং শুরু হয়। অ্যাপটি TMDB, YouTube, অ্যানিমে, Jellyfin ও Plex জুড়ে ট্রেন্ডিং ওয়াল, জেনার ও এপিসোড ড্রিল-ডাউনও দেয়। লাইভ টিভি ও IPTV সাপোর্ট করা হয় প্রায় ৪০,০০০ চ্যানেলের একটি ক্যাটালগের মাধ্যমে, সাথে টাইপ-করা-মাত্র-সার্চ। মাঙ্গা সাপোর্ট Mihon/Tachiyomi এক্সটেনশন ব্যবহার করে, আর Opal নিজেই Suwayomi সার্ভার চালায়। YouTube প্লেব্যাককে AV1-safe বলা হয়েছে। একটি ঐচ্ছিক অন-ডিভাইস AI কোপাইলট টুল ব্যবহারসহ একটি লোকাল LLM ব্যবহার করে কী দেখবেন-এর মতো প্রশ্নের উত্তর দেয় এবং প্লে-যোগ্য পছন্দ ফেরত দেয়। ভয়েস ও AI মডেল অপ্ট-ইন এবং কিছুই স্বয়ংক্রিয়ভাবে ডাউনলোড হয় না। আরও সমৃদ্ধ মেটাডেটার জন্য একটি ফ্রি TMDB v4 টোকেন যোগ করা যায়। প্লেয়ার ও অতিরিক্ত সুবিধা প্লেয়ারটি mpv-এর উপর তৈরি এবং এতে রয়েছে স্বয়ংক্রিয় সাবটাইটেল, ওয়াচ-পার্টি, সেশন রিস্টোর, একটি ফোন রিমোট ও পোর্ট 41595-এ একটি ওয়েব UI, সাথে ভিডিও ফ্রেমে OCR, ভাষার ফ্ল্যাশকার্ড, RSS, ইনকগনিটো মোড, সাতটি থিম ও একটি JSON API। ইনস্টল করা থাকলে প্লেব্যাক ঐচ্ছিকভাবে VLC-তে হস্তান্তর করা যায়। কীবোর্ড শর্টকাট সার্চ, ব্রাউজার, লাইব্রেরি, হিস্টরি, ফুলস্ক্রিন, প্লেলিস্ট, গ্রিড লেআউট, ফিট/ক্রপ, ফাইল খোলা, সেটিংস ও একটি চিট শিট কভার করে। Opal Connect নামের একটি ক্রস-ব্রাউজার MV3 এক্সটেনশন (Chrome, Edge, Firefox) একটি ট্যাবকে Opal অ্যাকশনে পরিণত করে: একটি ভিডিও পাঠানো বা কিউ করা, একটি মাঙ্গা বা নভেল সাইট সোর্স হিসেবে যোগ করা, বা একটি সাইড-প্যানেল রিমোট থেকে প্লেব্যাক চালানো। প্রাইভেসি ও ডেটা প্রকল্পটি জানায় যে কোনো অ্যাকাউন্ট, টেলিমেট্রি, ক্লাউড বা সাবস্ক্রিপশন নেই। হিস্টরি ও AI মেমরি ব্যবহারকারীর মালিকানাধীন একটি SQLite ফাইলে থাকে। ফাইলগুলো XDG-অনুগত: কনফিগ, টোকেন ও opal.db ~/.config/opal-এর অধীনে, ক্যাশ ~/.cache/opal-এর অধীনে, ডাউনলোড ~/Downloads/opal-এ, এবং কনটেন্ট প্লাগইন ~/.config/opal/plugins-এর অধীনে। কনটেন্ট সোর্স নিষ্ক্রিয় অবস্থায় আসে এবং একটি প্লাগইন রেজিস্ট্রি থেকে ইনস্টল করতে হয়; প্লাগইনে একটি ম্যানিফেস্ট ও একটি search/resolve এক্সিকিউটেবল থাকে যা JSON প্রিন্ট করে, যেখানে Lua স্যান্ডবক্সড এবং নেটিভ বাইনারি স্যান্ডবক্সড নয়। ইনস্টলেশন একটি এক-কমান্ড ইনস্টলার স্ক্রিপ্ট প্ল্যাটফর্ম শনাক্ত করে, চেকসাম যাচাই করে এবং আপডেটার ও ভার্সন পিন হিসেবেও কাজ করে; Linux-এ এটি sudo ছাড়াই ~/.local-এ ইনস্টল করে, সাথে apt, dnf, zypper বা AUR-এর জন্য একটি অপ্ট-ইন সিস্টেম-ওয়াইড মোড। প্যাকেজ macOS dmg, Homebrew tap, deb, rpm, AppImage এবং Windows msi বা পোর্টেবল zip হিসেবেও দেওয়া হয়। সোর্স থেকে বিল্ড করতে Zig 0.16.x এবং mpv, sqlite, onnxruntime, SDL2, libtorrent-rasterbar এবং ভয়েসের জন্য ffmpeg/whisper-cpp-এর মতো নেটিভ ডিপেন্ডেন্সি প্রয়োজন। Linux-এর ন্যূনতম শর্তের মধ্যে রয়েছে libmpv 0.34 বা নতুনতর এবং প্রিবিল্ট AppImage-এর জন্য glibc 2.38। আর্কিটেকচার ও লাইসেন্স সোর্স ট্রি core (অ্যালোকেটর, স্টেট, কনফিগ, পাথ, sqlite-vec সহ sqlite), player (mpv র‍্যাপার, প্লেলিস্ট, সাবটাইটেল, হিস্টরি), services (সার্চ, AI, টরেন্ট, Jellyfin, রিমোট API) এবং ui (dvui উইজেট) আলাদা করে, সাথে একটি সহচর ওয়েব UI ও এক্সটেনশন। প্রকল্পটি একটি একক লিক-চেকড অ্যালোকেটর, নির্দিষ্ট-আকারের বাফার, থ্রেড-সেফটি নিয়মের অধীনে একটি শেয়ারড স্টেট হাব এবং শুধু পরিবর্তন হলে রিপেইন্ট করার উপর জোর দেয়। এটি GPL-3.0 লাইসেন্সের অধীনে, আর বান্ডল করা ডিপেন্ডেন্সিগুলো নিজেদের লাইসেন্স ধরে রাখে। README উল্লেখ করে যে Opal কিছু হোস্ট, ইনডেক্স বা বিতরণ করে না, শুধু ব্যবহারকারীর কনফিগার করা সোর্সের সাথে সংযোগ করে, এবং সতর্ক করে যে BitTorrent ব্যবহারকারীর IP সোয়ার্মের কাছে প্রকাশ করে।