iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
Open-source Android app made with Flutter with functionality of watching movies and tv series for free.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗/providers/status) with in-app status indicators..srt or .vtt subtitle files directly from your device storage./ads announcements can stack above network banners or take priority. TV ads remain display-only.easy_localization supporting multiple languages including English, Spanish, Arabic, Hindi, and more.FlixQuest uses flutter_dotenv to load environment variables. Create a .env file in the root directory of the project:
# Required: TMDB API Key for movie and TV show metadata
TMDB_API_KEY="your_tmdb_api_key"
# Required: FlixQuest Scraper API v2 instance URL
FLIXQUEST_API_URL="https://your-flixquest-api-instance.com"
# Optional: Mixpanel project token for general analytics
MIXPANEL_API_KEY="your_mixpanel_api_key"
FlixQuest communicates with FlixQuest Scraper API v2 for resolving streaming sources. The backend service is closed-source; please contact [email protected] for support or API instance access.
The client-side API contract and payload schemas are documented in openapi.json.
Key endpoints consumed by the app:
GET /providers: Discovers available and enabled video providers.GET /providers/status: Fetches live provider health status, latency, and uptime.GET /stream-movie: Scrapes streaming links for movies using TMDB ID.GET /stream-tv: Scrapes streaming links for TV episodes using TMDB ID, season, and episode number.GET /subtitles/search: Searches every subtitle provider for a movie or episode and returns one combined catalog.GET /subtitles/{provider}/{id}: Downloads a subtitle file. The API converts and re-encodes it, so the app never contacts a subtitle host directly.POST /stream-size: Estimates the byte size behind a stream token so the quality picker can show sizes.GET /api/v2/intro: Retrieves branded intro video configuration.FlixQuest uses Firebase for several services:
| Service | Purpose |
|---|---|
| Firebase Authentication | User authentication, profile management, and session handling. |
| Cloud Firestore | Cloud bookmark synchronization across multiple devices. |
| Firebase Remote Config | Dynamic configuration for feature toggles (Watch now, Download, Live TV), app logos, seasonal themes, and vector animation effects. See docs/firebase_remote_config.md for full schema details. |
| Firebase Cloud Messaging | Background notifications and alerts. |
| Firebase In-App Messaging | Dynamic in-app banners and update notices. |
| Firebase Analytics | Usage and performance analytics. |
Note: To connect to your own Firebase project, place your
google-services.jsoninsideandroid/app/.
better_player PackageThis repository uses a customized version of better_player (better_player_plus) located at github.com/BeamlakAschalew/flixquest-betterplayer.
You can configure it in pubspec.yaml using a local path or git URL:
better_player_plus:
git:
url: https://github.com/BeamlakAschalew/flixquest-betterplayer.git
Or reference a local sibling directory:
better_player_plus:
path: ../flixquest-betterplayer
>=3.0.0 <4.0.0^3.0.0Clone the repository:
git clone https://github.com/BeamlakAschalew/flixquest.git
cd flixquest
Clone the custom better_player repository (if using local path):
cd ..
git clone https://github.com/BeamlakAschalew/flixquest-betterplayer.git
cd flixquest
Configure Environment Variables:
Create a .env file in the project root:
cp .env.example .env # or create a new .env file with your keys
Install Dependencies:
flutter pub get
Run the Application:
For Android Mobile / Tablet:
flutter run
For Android TV (Emulator or connected TV device):
flutter run -d <tv-device-id>
The app detects TV or mobile mode automatically by default. If a custom ROM reports the wrong device type, choose Settings → Appearance → App mode → TV or Mobile. The interface switches immediately and the choice is saved across launches. Choose Automatic to return to device detection.
Android has two flavors: prod (the default) and dev. To test real banner
ads using Firebase's banner_ad_network_test selector, run the dev flavor:
flutter run --flavor dev
flutter run --flavor dev --release
The test selector works in dev debug/profile/release builds. Prod ignores it in every build mode. See banner testing setup. Both flavors reuse the existing Android package and Firebase registration; they share an install slot. The dev launcher label is FlixQuest Dev.
Build Release APK:
flutter build apk --release
This uses the default prod flavor and outputs
build/app/outputs/flutter-apk/app-prod-release.apk. You can also specify
--flavor prod explicitly. A development release APK is built with
.
Contributions, feature suggestions, design ideas, and translations are always welcome!
Pull Requests: Please ensure your code passes static analysis and is properly formatted:
dart format .
flutter test
Issue Reports: Please follow the provided issue templates when opening bugs or feature requests.
phosphor_flutter).bimsina/Matinee-Flutter).flutter build apk --flavor dev --releaseFor smaller per-device downloads, also build split APKs:
flutter build apk --release --split-per-abi
The update screen downloads the APK matching the device's CPU. Publish each
split APK's link in Remote Config under app_download_url_arm64_v8a,
app_download_url_armeabi_v7a and app_download_url_x86_64, and keep the
universal APK in app_download_url. A device whose ABI can't be read, or
whose key is empty, downloads the universal APK.