پلتفرم جستجو و پخش آنلاین فیلم و سریال فارسی و خارجی
- 🎬 جستجوی فیلم و سریال فارسی (FarsiLand)
- 🌍 جستجوی فیلم و سریال خارجی (IMDB + StreamWide)
▶️ پخش آنلاین مستقیم- 📥 دانلود با کیفیتهای مختلف
- 🎙️ دستهبندی دوبله، زیرنویس جدا، زیرنویس چسبیده
- 📱 رابط کاربری ریسپانسیو
npm installفایل .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 اختیاری هستند و در اولین اجرا خودکار ساخته میشوند.
mkdir dataاین پوشه برای ذخیره کش و فایلهای موقت استفاده میشود. اگر از ENV استفاده کنید، نیازی به این پوشه نیست.
نکته: اگر TELEGRAM_SESSION و STREAMWIDE_REFRESH_TOKEN را در .env قرار دهید، دیگر نیازی به فایلهای data/ نیست.
npm startیا برای توسعه:
node server.jsسرور روی http://localhost:3000 اجرا میشود.
- به https://my.telegram.org برو
- وارد شو با شماره تلگرامت
- برو به "API development tools"
- یه اپلیکیشن جدید بساز
api_idوapi_hashرو کپی کن
اگه در ایران هستی، برای اتصال به تلگرام نیاز به پروکسی داری:
- V2Ray, Clash یا هر VPN دیگهای رو روشن کن
- پورت SOCKS5 رو پیدا کن (معمولاً 10808)
- در
.envتنظیم کن
-
فایلهای زیر را آپلود نکنید:
.env(اطلاعات حساس)data/(فایلهای سشن)node_modules/(بعداً نصب میشه)
-
روی هاست:
npm install cp .env.example .env nano .env # اطلاعات رو وارد کن mkdir data npm start
اولین بار که سرور رو اجرا میکنی:
- برو به
/telegram.html - یه فیلم جستجو کن
- روی "Get Download Links" کلیک کن
- اگه نیاز به لاگین بود، روی "Login" کلیک کن
- کد تلگرام رو وارد کن
- سشن ذخیره میشه و در لاگ نمایش داده میشه
- مهم: سشن رو کپی کن و به
.envاضافه کن:TELEGRAM_SESSION=1AgAOMTQ5LjE1NC4xNjcuOTE...
- سرور رو ریستارت کن:
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
GET /api/search?q=query- جستجوGET /api/details/:id- جزئیات فیلمGET /api/get-download?fileId=xxx- لینک دانلود
GET /imdb/search?q=query- جستجو در IMDBGET /telegram/get-links?imdbId=xxx&title=xxx- دریافت لینکهاGET /telegram/fetch-videos?playlistId=xxx- دریافت ویدیوهاPOST /telegram/login- لاگین تلگرامGET /telegram/status- وضعیت اتصال
GET /stream?url=xxx- استریم ویدیو
برای توسعه پروژه:
# نصب وابستگیها
npm install
# اجرا در حالت توسعه
node server.js
# یا با nodemon برای auto-reload
npm install -g nodemon
nodemon server.js- پروکسی رو چک کن
- مطمئن شو VPN روشنه
- API credentials رو دوباره چک کن
- توکن منقضی شده - دوباره لاگین کن
- کش رو پاک کن:
rm data/streamwide_refresh.txt
- IMDB ID رو چک کن
- عنوان انگلیسی رو امتحان کن
- ممکنه فیلم در StreamWide نباشه
MIT
💜 آقا دَنی