Skip to content

ddanialb/Film

Repository files navigation

فیلم بینا - Film Bina

پلتفرم جستجو و پخش آنلاین فیلم و سریال فارسی و خارجی

ویژگی‌ها

  • 🎬 جستجوی فیلم و سریال فارسی (FarsiLand)
  • 🌍 جستجوی فیلم و سریال خارجی (IMDB + StreamWide)
  • ▶️ پخش آنلاین مستقیم
  • 📥 دانلود با کیفیت‌های مختلف
  • 🎙️ دسته‌بندی دوبله، زیرنویس جدا، زیرنویس چسبیده
  • 📱 رابط کاربری ریسپانسیو

نصب

1. نصب وابستگی‌ها

npm install

2. تنظیمات محیطی

فایل .env.example را کپی کنید به .env:

cp .env.example .env

سپس اطلاعات خود را در .env وارد کنید:

FARSILAND_USERNAME=your_username
FARSILAND_PASSWORD=your_password
PORT=3000
TELEGRAM_API_ID=your_api_id
TELEGRAM_API_HASH=your_api_hash
TELEGRAM_PHONE=+989123456789
TELEGRAM_2FA_PASSWORD=your_2fa_password
SOCKS_PROXY_HOST=127.0.0.1
SOCKS_PROXY_PORT=10808

نکته: TELEGRAM_SESSION و STREAMWIDE_REFRESH_TOKEN اختیاری هستند و در اولین اجرا خودکار ساخته می‌شوند.

3. ساخت پوشه data (اختیاری)

mkdir data

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

نکته: اگر TELEGRAM_SESSION و STREAMWIDE_REFRESH_TOKEN را در .env قرار دهید، دیگر نیازی به فایل‌های data/ نیست.

4. اجرا

npm start

یا برای توسعه:

node server.js

سرور روی http://localhost:3000 اجرا می‌شود.

دریافت API Credentials

Telegram API

  1. به https://my.telegram.org برو
  2. وارد شو با شماره تلگرامت
  3. برو به "API development tools"
  4. یه اپلیکیشن جدید بساز
  5. api_id و api_hash رو کپی کن

SOCKS5 Proxy (اختیاری)

اگه در ایران هستی، برای اتصال به تلگرام نیاز به پروکسی داری:

  • V2Ray, Clash یا هر VPN دیگه‌ای رو روشن کن
  • پورت SOCKS5 رو پیدا کن (معمولاً 10808)
  • در .env تنظیم کن

استقرار روی هاست

آماده‌سازی

  1. فایل‌های زیر را آپلود نکنید:

    • .env (اطلاعات حساس)
    • data/ (فایل‌های سشن)
    • node_modules/ (بعداً نصب می‌شه)
  2. روی هاست:

    npm install
    cp .env.example .env
    nano .env  # اطلاعات رو وارد کن
    mkdir data
    npm start

لاگین تلگرام روی هاست

اولین بار که سرور رو اجرا می‌کنی:

  1. برو به /telegram.html
  2. یه فیلم جستجو کن
  3. روی "Get Download Links" کلیک کن
  4. اگه نیاز به لاگین بود، روی "Login" کلیک کن
  5. کد تلگرام رو وارد کن
  6. سشن ذخیره میشه و در لاگ نمایش داده میشه
  7. مهم: سشن رو کپی کن و به .env اضافه کن:
    TELEGRAM_SESSION=1AgAOMTQ5LjE1NC4xNjcuOTE...
  8. سرور رو ریستارت کن: pm2 restart film-bina

مزیت: با این روش دیگر نیازی به نگهداری فایل telegram_session.txt نیست و همه چیز در .env هست.

امنیت

⚠️ مهم: فایل .env را هرگز در Git قرار ندهید!

فایل .env شامل تمام اطلاعات حساس است:

  • اطلاعات لاگین FarsiLand
  • API credentials تلگرام
  • سشن تلگرام (اگر استفاده کنید)
  • توکن StreamWide (اگر استفاده کنید)

این فایل در .gitignore اضافه شده است.

توصیه: برای امنیت بیشتر، TELEGRAM_SESSION و STREAMWIDE_REFRESH_TOKEN را در .env قرار دهید به جای استفاده از فایل‌های data/.

ساختار پروژه

search-app/
├── data/                    # فایل‌های حساس (git ignore)
│   ├── telegram_session.txt
│   ├── streamwide_refresh.txt
│   └── playlist_cache.json
├── public/                  # فایل‌های استاتیک
│   ├── css/
│   ├── fonts/
│   ├── js/
│   ├── index.html          # صفحه اصلی (فیلم فارسی)
│   ├── telegram.html       # فیلم خارجی
│   ├── player.html         # پخش آنلاین
│   └── details.html        # جزئیات فیلم
├── routes/                  # API Routes
│   ├── search.js           # FarsiLand API
│   ├── telegram.js         # Telegram + StreamWide API
│   └── imdb.js             # IMDB Search
├── server.js               # سرور اصلی
├── .env                    # تنظیمات محیطی (git ignore)
├── .env.example            # نمونه تنظیمات
└── package.json

API Endpoints

FarsiLand (فیلم فارسی)

  • GET /api/search?q=query - جستجو
  • GET /api/details/:id - جزئیات فیلم
  • GET /api/get-download?fileId=xxx - لینک دانلود

Telegram/StreamWide (فیلم خارجی)

  • GET /imdb/search?q=query - جستجو در IMDB
  • GET /telegram/get-links?imdbId=xxx&title=xxx - دریافت لینک‌ها
  • GET /telegram/fetch-videos?playlistId=xxx - دریافت ویدیوها
  • POST /telegram/login - لاگین تلگرام
  • GET /telegram/status - وضعیت اتصال

Player

  • GET /stream?url=xxx - استریم ویدیو

توسعه

برای توسعه پروژه:

# نصب وابستگی‌ها
npm install

# اجرا در حالت توسعه
node server.js

# یا با nodemon برای auto-reload
npm install -g nodemon
nodemon server.js

مشکلات رایج

خطای اتصال تلگرام

  • پروکسی رو چک کن
  • مطمئن شو VPN روشنه
  • API credentials رو دوباره چک کن

خطای StreamWide

  • توکن منقضی شده - دوباره لاگین کن
  • کش رو پاک کن: rm data/streamwide_refresh.txt

فیلم پیدا نمیشه

  • IMDB ID رو چک کن
  • عنوان انگلیسی رو امتحان کن
  • ممکنه فیلم در StreamWide نباشه

لایسنس

MIT

توسعه‌دهنده

💜 آقا دَنی

About

Film

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published