{"id":47529022,"url":"https://github.com/egphp/iptv-manager-updates","last_synced_at":"2026-06-07T14:01:13.156Z","repository":{"id":345063527,"uuid":"1184159768","full_name":"egphp/iptv-manager-updates","owner":"egphp","description":"IPTV Manager v3.5: Plex-first self-hosted IPTV catalog manager, downloader, local VOD player, Plex watch tracker, disk discovery, safe trash/restore, Connected Devices, PWA, Docker. مدير IPTV شامل لتنظيم الكتالوج والتحميل والمتابعة.","archived":false,"fork":false,"pushed_at":"2026-05-24T23:59:49.000Z","size":23474,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T00:32:53.135Z","etag":null,"topics":["aria2","connected-devices","docker","flask","imdb","iptv","iptv-manager","local-playback","media-downloader","media-manager","omdb","plex","plex-media-server","pwa","python","self-hosted","sqlite","tmdb","vod","watch-tracking"],"latest_commit_sha":null,"homepage":"https://github.com/egphp/iptv-manager-updates/releases/latest","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/egphp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-17T10:06:56.000Z","updated_at":"2026-04-29T14:58:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/egphp/iptv-manager-updates","commit_stats":null,"previous_names":["egphp/iptv-manager-updates"],"tags_count":798,"template":false,"template_full_name":null,"purl":"pkg:github/egphp/iptv-manager-updates","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egphp%2Fiptv-manager-updates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egphp%2Fiptv-manager-updates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egphp%2Fiptv-manager-updates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egphp%2Fiptv-manager-updates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/egphp","download_url":"https://codeload.github.com/egphp/iptv-manager-updates/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egphp%2Fiptv-manager-updates/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34023902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aria2","connected-devices","docker","flask","imdb","iptv","iptv-manager","local-playback","media-downloader","media-manager","omdb","plex","plex-media-server","pwa","python","self-hosted","sqlite","tmdb","vod","watch-tracking"],"created_at":"2026-03-27T20:53:09.826Z","updated_at":"2026-06-07T14:01:13.132Z","avatar_url":"https://github.com/egphp.png","language":null,"funding_links":["https://www.paypal.com/ncp/payment/GYPXYRC3MJ85C"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/01-dashboard-movie-grid.jpg\" alt=\"IPTV Manager dashboard\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eIPTV Manager v3.5\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003ePlex-first IPTV catalog manager, downloader, tracker, playback surface, and operations dashboard.\u003c/strong\u003e\u003cbr\u003e\n  Discover new IPTV content, filter it, decide what to keep, download it, play it locally or through Plex, track watch state, and keep recovery paths visible.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eمدير IPTV شامل لـ Plex والتنزيل والمتابعة والتشغيل المحلي\u003c/strong\u003e\u003cbr\u003e\n  يكتشف الجديد من المزود، يفلتره، يخليك تقبل أو ترفض، يحمل تلقائيًا، يتابع المشاهدة، ويترك كل خطوة قابلة للمراجعة والاسترجاع.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"../../releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/badge/Download-Latest%20Release-gold?style=for-the-badge\u0026logo=github\" alt=\"Download\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.paypal.com/ncp/payment/GYPXYRC3MJ85C\"\u003e\u003cimg src=\"https://img.shields.io/badge/Donate-PayPal-blue?style=for-the-badge\u0026logo=paypal\" alt=\"Donate\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-Ready-2496ED?style=flat-square\u0026logo=docker\" alt=\"Docker\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.12-blue?style=flat-square\u0026logo=python\" alt=\"Python\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Flask%20%2B%20Cheroot-HTTPS-green?style=flat-square\" alt=\"Flask and Cheroot\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SQLite-WAL-lightgrey?style=flat-square\" alt=\"SQLite WAL\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PWA-Installable-orange?style=flat-square\" alt=\"PWA\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/mDNS-iptv.local-purple?style=flat-square\" alt=\"mDNS\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Theme-Auto%20%7C%20Light%20%7C%20Dark-333?style=flat-square\" alt=\"Theme\"\u003e\n\u003c/p\u003e\n\n---\n\n## Project Description | وصف المشروع\n\nIPTV Manager turns a large, noisy IPTV subscription catalog into a controlled media library workflow. It is not only a downloader. It is a full decision system: it imports provider catalogs, enriches titles with metadata, applies global and per-section rules, shows every item in a review dashboard, downloads accepted content with aria2c, supports local/browser playback, tracks Plex watch state, discovers files already on disk, detects broken downloads, keeps a trash/restore path, monitors connected clients, and publishes update packages.\n\nIPTV Manager يحول كتالوج IPTV الضخم والفوضوي إلى مكتبة منظمة قابلة للتحكم. هو ليس برنامج تحميل فقط؛ هو نظام قرار كامل: يجلب الكتالوج، يثري العناوين بالميتاداتا، يطبق قواعد عامة ولكل قسم، يعرض كل شيء في لوحة مراجعة، يحمل المقبول، يشغل محليًا، يتابع Plex، يكتشف الملفات الموجودة، يفحص التلف، يحافظ على مسار Trash/Restore، ويراقب الأجهزة والتحديثات.\n\n## Search Keywords | كلمات البحث\n\nIPTV manager, Plex IPTV downloader, self-hosted VOD manager, IPTV catalog organizer, aria2c media downloader, TMDB OMDb IMDb metadata, local VOD playback, Plex watch tracking, IPTV series tracker, disk discovery, safe trash restore, connected devices dashboard, Docker IPTV app, Arabic IPTV manager, Egyptian holiday themes, IPTV PWA, IPTV download automation.\n\n## Core Idea | الفكرة الأساسية\n\nMost IPTV subscriptions expose huge catalogs but weak ownership: no clean resume, no reliable thumbnails, no structured decisions, limited watch history, repeated duplicates, unclear source quality, and high bandwidth waste. IPTV Manager fixes that by making the workflow explicit:\n\n1. Fetch the provider catalog.\n2. Enrich titles with metadata and covers.\n3. Apply filters, exclusions, and section rules.\n4. Let the user accept, reject, swap, or ignore.\n5. Download only accepted content.\n6. Play locally or through Plex.\n7. Track progress, future episodes, file health, trash, and device state.\n\n---\n\n## Quick Start | البداية السريعة\n\n```bash\ndocker run -d --name iptv-manager --restart unless-stopped \\\n  -p 443:443 \\\n  -v iptv-data:/app/data \\\n  -v /path/to/media:/media \\\n  -e TZ=Africa/Cairo \\\n  iptv-manager\n\n# Open https://iptv.local\n```\n\nDocker is the recommended production path. Windows users can download `setup-docker.bat` from the latest release for a guided setup.\n\n---\n\n## Full Feature Tour | جولة كاملة بالصور\n\nEvery screenshot is shown separately with its own explanation. The older public screenshots were restored into the flow, the newer v3.5 screenshots were added, and all published screenshots were re-saved without embedded file metadata.\n\nكل صورة هنا لها قسم مستقل وشرحها الخاص. الصور القديمة رجعت داخل الجولة، الصور الجديدة اتضافت، وكل الصور المنشورة أعيد حفظها بدون metadata داخل الملف.\n\n### 01. Dashboard Movie And Series Grid\n\nThe first screen is the working review board, not a marketing page. It shows sections, media cards, posters, ratings, year, country, genre, source labels, and live counts so the user can decide quickly what is worth keeping.\n\nالشاشة الأولى هي لوحة العمل الحقيقية: أقسام، كروت، بوسترات، تقييمات، سنة، بلد، نوع، مصدر، وأعداد مباشرة تساعدك تختار بسرعة.\n\n- Custom sections for movies, series, Arabic, foreign, Turkish, Ramadan, 4K, and any provider grouping.\n- Cards combine IPTV source data with TMDB, OMDb, IMDb, local disk state, and decision state.\n- The layout is built for repeated daily review: scan, compare, accept, reject, search, and continue watching.\n- The dashboard remembers navigation state without losing the selected section, tab, or active filters.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/01-dashboard-movie-grid.jpg\" alt=\"Dashboard Movie And Series Grid\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 02. Status Tabs And Filter Bar\n\nThe status row separates the whole workflow into Pending, Accepted, Rejected, Excluded, richer review tabs, and live counters. The filter bar adds sort, genre, country, year, source, and group-only filtering.\n\nشريط الحالات يقسم دورة العمل: معلق، مقبول، مرفوض، مستبعد، وتابات مراجعة إضافية مع أعداد حية وفلاتر دقيقة.\n\n- Counts update from the same backend state used by the cards.\n- Filters are section-aware so counts and dropdowns reflect the current media slice.\n- Sort modes support newest, highest rating, most voted, latest downloaded, and source-focused review.\n- The UI keeps fast scanning possible even when the IPTV catalog contains tens of thousands of items.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/02-status-filter-bar.jpg\" alt=\"Status Tabs And Filter Bar\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 03. Accept And Reject Overlay\n\nHovering a card reveals direct decision actions. Accept starts the ownership path toward download and playback; Reject removes noise without deleting history.\n\nعند الوقوف على الكارت تظهر أزرار القرار. القبول يبدأ مسار التحميل، والرفض ينقل العنصر من غير ما يضيع أثره.\n\n- Decisions are saved immediately through the API.\n- Accept supports movies and series, including later variant and episode-range choices.\n- Reject can be reversed from the Rejected tab when needed.\n- Decision state is visible in cards, search, logs, and analytics.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/03-accept-reject-hover.jpg\" alt=\"Accept And Reject Overlay\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 04. Multiple Versions Detection\n\nWhen the same title appears from more than one IPTV source, the app groups the versions instead of treating them as unrelated duplicates.\n\nلو نفس العمل موجود في أكثر من مصدر IPTV، التطبيق يجمع النسخ بدل اعتبارها عناصر عشوائية منفصلة.\n\n- Version badges expose duplicate/source groups directly on the card.\n- Sibling variants preserve category, source, stream ID, quality hints, and section ownership.\n- The chosen variant is stored separately so future syncs do not overwrite the selected source.\n- Group actions can target all variants when the user wants to clean a noisy title.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/04-series-card-versions.jpg\" alt=\"Multiple Versions Detection\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 05. Version Picker\n\nThe picker shows the available sources for a title and lets the user select the exact provider category or platform-like feed to use.\n\nنافذة اختيار النسخة تعرض المصادر المتاحة للعمل وتخليك تختار مصدر التحميل المطلوب بدقة.\n\n- Every version remains traceable to its IPTV category.\n- The UI marks the currently chosen version when a decision already exists.\n- Source changes do not require deleting and recreating the decision.\n- The flow protects against cross-section identity drift by keeping section and source context.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/05-accept-version-picker.jpg\" alt=\"Version Picker\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 06. Episode Range Picker\n\nSeries acceptance can download the full show, only new episodes, or a custom start season and episode. This prevents wasting bandwidth on episodes already watched elsewhere.\n\nقبول المسلسل يدعم كل الحلقات، الجديد فقط، أو بداية مخصصة بالموسم والحلقة حتى لا يتم تحميل ما لا تحتاجه.\n\n- Season totals are visible before the user commits.\n- Custom ranges are saved with the decision and reused by the downloader queue.\n- New-only mode supports future catch-up without backfilling old seasons.\n- The downloader respects the accepted range, selected variant, and local files already present.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/06-accept-episode-range.jpg\" alt=\"Episode Range Picker\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 07. Accepted Series Tracking\n\nAccepted cards show what has been selected, what is available online, what exists locally, and which source is active.\n\nكروت المقبول تعرض ما تم اختياره، المتاح أونلاين، الموجود على الديسك، والمصدر النشط.\n\n- Local and online counts are shown separately.\n- Accepted media can be ordered by latest downloaded episode.\n- Card badges expose selected source, rating, year, platform/source label, and episode progress.\n- Accepted state is used by downloader, local playback, Plex tracking, and future schedule checks.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/07-accepted-series-tracking.jpg\" alt=\"Accepted Series Tracking\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 08. Accepted Episode Progress\n\nThe progress line tells the user where the accepted range begins and how much of the series is already represented locally.\n\nسطر التقدم يوضح نقطة بداية التحميل وحالة الحلقات الموجودة محليًا.\n\n- Start points like season/episode are stored with the decision.\n- Series with partial local coverage remain visible instead of being treated as complete.\n- The badge system avoids counting temporary or failed download artifacts as real episodes.\n- This view makes it easy to confirm why a series is waiting, complete, or still downloading.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/08-accepted-series-progress.jpg\" alt=\"Accepted Episode Progress\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 09. Section Source Labels\n\nEach section can be fed by multiple IPTV categories. The header shows readable source labels so the user knows where the content came from.\n\nكل قسم يمكن أن يعتمد على عدة كاتيجوريز من مزود IPTV، والهيدر يعرض أسماء المصادر بوضوح.\n\n- Source labels make provider category IDs understandable.\n- Sections can mix sources while keeping the decision and download folder stable.\n- Category labels help diagnose why a title appeared in a section.\n- Adding or removing a source can be done without editing files manually.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/09-section-sources-labeled.jpg\" alt=\"Section Source Labels\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 10. Section Header Details\n\nThe section header is a control surface: enable/disable, disk usage, source visibility, edit, scan, quick filters, and folder context.\n\nهيدر القسم ليس عنوان فقط؛ هو سطح تحكم فيه تفعيل، حجم، مصادر، تعديل، فحص، وفلاتر سريعة.\n\n- Disk usage is calculated per section.\n- Scan runs can be triggered for one section instead of the entire catalog.\n- The header exposes min-year, min-rating, source, and folder hints at a glance.\n- Collapsed source views keep large sections readable.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/10-section-header-details.jpg\" alt=\"Section Header Details\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 11. Add New Section\n\nThe Add Section modal creates a complete content lane: name, source categories, folder, movie/series mode, filter thresholds, strictness, IPTV-only mode, watched-delete behavior, and quality flags.\n\nنافذة إضافة قسم تنشئ مسار محتوى كامل: اسم، مصادر، فولدر، وضع أفلام/مسلسلات، فلاتر، وقواعد متقدمة.\n\n- Section IDs are stable backend identifiers.\n- Download location is stored with the section and reused across queue, discovery, trash, and local playback.\n- Min year, rating, and vote thresholds can be set from the beginning.\n- Advanced toggles support movie sections, skip-strict review, IPTV-only cover mode, and 4K source marking.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/11-add-new-section.jpg\" alt=\"Add New Section\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 12. Edit Section\n\nExisting sections can be changed without rebuilding the library. The modal preserves current state and applies updates through section APIs.\n\nيمكن تعديل أي قسم قائم بدون إعادة بناء المكتبة، مع حفظ الحالة وتطبيق التغيير من واجهة الإعدادات.\n\n- Name, folder, filters, mode flags, and source behavior can be changed later.\n- Retroactive filtering can release or exclude pending items when thresholds change.\n- The app previews destructive section deletion through a separate endpoint before applying it.\n- Edits are logged so operational changes remain traceable.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/12-edit-section.jpg\" alt=\"Edit Section\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 13. Add Category Source\n\nThe category picker lets users browse provider categories and add them to a section without needing to remember numeric IDs.\n\nمنتقي الكاتيجوريز يسمح بتصفح مصادر المزود وإضافتها للقسم دون حفظ الأرقام يدويًا.\n\n- Categories are fetched from the provider and presented with readable names.\n- Movie and series sections use the proper provider action for their type.\n- Duplicate source additions are avoided.\n- Category changes can be audited through section headers and settings.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/13-add-category-source.jpg\" alt=\"Add Category Source\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 14. Filter Dropdown Controls\n\nThe compact dropdown strip keeps daily review fast: sort mode, genre, country, year, source, and group filters are close to the cards.\n\nشريط الفلاتر المختصر يجعل المراجعة اليومية أسرع: ترتيب، نوع، بلد، سنة، مصدر، وتجميع النسخ.\n\n- Dropdown state is tied to the current section and tab.\n- Counts are calculated from backend filtered data.\n- Filters can be combined to isolate exactly what needs review.\n- The UI avoids full-page reloads when filters change.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/14-filter-dropdowns.jpg\" alt=\"Filter Dropdown Controls\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 15. Genre Dropdown With Counts\n\nThe genre menu shows every genre available in the current slice, including counts, making it useful for audit and cleanup.\n\nقائمة الأنواع تعرض كل نوع موجود في الجزء الحالي مع العدد، وهذا يساعد في المراجعة والتنظيف.\n\n- Counts help identify noisy genres.\n- Excluded genres remain traceable through settings and exclusion reasons.\n- Genre filters work alongside country, year, source, status, and search.\n- The same genre data feeds filter breakdown analytics.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/15-genres-dropdown.jpg\" alt=\"Genre Dropdown With Counts\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 16. Country Dropdown With Counts\n\nThe country menu exposes regional distribution so the user can focus on the libraries they actually watch.\n\nقائمة البلاد تعرض توزيع المحتوى حسب الدولة حتى تركز على المكتبات المطلوبة.\n\n- Country values come from enriched metadata when available.\n- Unknown or incomplete metadata remains visible instead of disappearing silently.\n- Country exclusions can be global or section-specific.\n- Breakdown charts use the same country basis for consistency.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/16-countries-dropdown.jpg\" alt=\"Country Dropdown With Counts\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 17. Sort Dropdown\n\nSort modes let the user scan by recency, quality, popularity, download recency, and other practical review orders.\n\nخيارات الترتيب تسمح بالمراجعة حسب الأحدث، الأعلى تقييمًا، الأكثر تصويتًا، أو آخر تحميل.\n\n- Newest-first supports daily triage.\n- Rating and vote sorting help find high-value content quickly.\n- Latest-downloaded ordering helps continue accepted series review.\n- Sort state is part of the dashboard navigation memory.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/17-sort-dropdown.jpg\" alt=\"Sort Dropdown\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 18. Groups Only Filter\n\nThe groups-only mode isolates titles that have multiple sources or variants, which is where manual source choice matters most.\n\nفلتر المجموعات يعرض الأعمال التي لها أكثر من نسخة أو مصدر، وهي الحالات التي تحتاج اختيار يدوي.\n\n- Useful for choosing Netflix/Prime/HBO-style sources when labels exist.\n- Supports cleanup of duplicate entries.\n- Works with accept, reject group, and chosen-source behavior.\n- Helps detect provider catalog noise without scanning the whole dashboard.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/18-groups-only-filter.jpg\" alt=\"Groups Only Filter\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 19. Cross Section Search\n\nGlobal search finds titles across every section and reports their current status, not just the visible tab.\n\nالبحث الشامل يجد الأعمال في كل الأقسام ويعرض حالتها الحالية، وليس فقط التاب المفتوح.\n\n- Results include thumbnails, section names, status badges, year, rating, and country.\n- Search supports direct navigation back into the relevant section.\n- Recent searches and suggestions make repeat lookups faster.\n- The backend uses indexed/search helpers instead of scanning everything in the browser.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/19-cross-section-search.jpg\" alt=\"Cross Section Search\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 20. Country Filter Breakdown\n\nThe country breakdown turns metadata into an audit chart. It shows the distribution of content and how exclusion rules affect the catalog.\n\nتحليل البلاد يحول الميتاداتا إلى رسم تدقيقي يوضح توزيع المحتوى وتأثير قواعد الاستبعاد.\n\n- Each section can be analyzed independently.\n- Excluded countries are visibly marked.\n- The chart helps tune rules before running another sync.\n- Breakdowns are also useful for spotting bad metadata or unexpected provider categories.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/20-filter-breakdown-countries.jpg\" alt=\"Country Filter Breakdown\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 21. Genre Filter Breakdown\n\nThe genre chart shows which genres dominate a section and which ones are being filtered out.\n\nرسم الأنواع يوضح الأنواع المسيطرة داخل القسم وما يتم استبعاده منها.\n\n- Supports section-level and global review.\n- Helps avoid over-filtering valuable content.\n- Pairs with settings where genres can be excluded globally or per section.\n- The same data supports dashboard dropdown counts.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/21-filter-breakdown-genres.jpg\" alt=\"Genre Filter Breakdown\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 22. System Statistics\n\nThe statistics panel gives operational scale: total media, decisions, downloads, bandwidth, file counts, database size, sections, and recent activity.\n\nلوحة الإحصائيات تعرض حجم النظام: عدد الأعمال، القرارات، التحميلات، الاستهلاك، الملفات، قاعدة البيانات، والنشاط.\n\n- Shows decision breakdown by status.\n- Tracks series/movie totals and per-section distribution.\n- Includes daily download charts for recent activity.\n- Useful for confirming that sync, download, filters, and DB state agree.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/22-system-statistics.jpg\" alt=\"System Statistics\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 23. Monthly Bandwidth\n\nMonthly bandwidth shows how much data the downloader moved and how many files were involved, with daily bars for trend review.\n\nإحصائية الشهر تعرض حجم التحميل وعدد الملفات مع أعمدة يومية لمراجعة الاتجاه.\n\n- Feeds from download history and daily stats.\n- Supports daily and monthly limits in settings.\n- Makes heavy download days obvious.\n- Helps diagnose provider changes, queue spikes, and storage planning.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/23-bandwidth-monthly.jpg\" alt=\"Monthly Bandwidth\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 24. Daily Bandwidth Detail\n\nThe daily detail panel expands a day into file-level download entries with sizes and names.\n\nتفاصيل اليوم تعرض الملفات التي تم تحميلها في ذلك اليوم مع الاسم والحجم.\n\n- Lets the user audit exactly what consumed bandwidth.\n- Pairs with download limits and accepted decisions.\n- Useful when a large series or movie batch triggers unexpected usage.\n- The data links dashboard state to downloader history.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/24-bandwidth-daily-detail.jpg\" alt=\"Daily Bandwidth Detail\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 25. Live Sync And Download Logs\n\nLive logs stream current sync and downloader activity onto the dashboard, so the user does not need to open server files.\n\nاللوجات المباشرة تعرض نشاط المزامنة والتحميل داخل اللوحة بدون فتح ملفات السيرفر.\n\n- Sync status covers category fetch, metadata enrichment, filters, covers, and summaries.\n- Download status covers queue building, matching, progress, tagging, and cleanup.\n- The panels show idle/running state honestly.\n- Polling was optimized to reduce unnecessary CPU load.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/25-sync-download-logs-live.jpg\" alt=\"Live Sync And Download Logs\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 26. Downloader System Logs\n\nThe full system log view exposes longer operational context for troubleshooting downloads, matching, cleanup, and tagging.\n\nلوحة اللوجات الكاملة تعرض سياق أطول لتشخيص التحميل، المطابقة، التنظيف، والتاجينج.\n\n- Separate log tabs keep downloader, sync, covers, web, system, and live activity readable.\n- Longer history helps diagnose issues that are missed by the compact live cards.\n- Log output is displayed inside the app for remote support workflows.\n- The UI avoids flashing while auto-refreshing.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/26-system-logs-downloader.jpg\" alt=\"Downloader System Logs\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 27. Full Sync Log\n\nThe sync log records full catalog refresh activity: provider fetches, category updates, metadata work, filters, accepted state, and summaries.\n\nلوج المزامنة يسجل تحديث الكتالوج: جلب المزود، الكاتيجوريز، الميتاداتا، الفلاتر، وحالة القرارات.\n\n- Helpful for seeing why new items appeared or disappeared.\n- Shows whether a section sync or full sync was running.\n- Supports debugging metadata, cover, and filter decisions.\n- The sync pipeline uses shared IPTV request gates and cached snapshots to control external calls.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/27-sync-log-full.jpg\" alt=\"Full Sync Log\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 28. Full Download Log\n\nThe download log gives the complete queue and file flow: selected items, provider streams, limits, resume, finish state, tagging, and cleanup.\n\nلوج التحميل يعرض مسار الطابور والملفات: العناصر المختارة، الستريم، الحدود، الاستكمال، التاجينج، والتنظيف.\n\n- Makes stalled or skipped downloads explainable.\n- Shows smart restart and process-control outcomes.\n- Links accepted decisions to actual files.\n- Helps verify that local files, DB state, and downloader results match.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/28-download-log-full.jpg\" alt=\"Full Download Log\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 29. Manual Sync And Download Buttons\n\nThe quick run popover lets the user trigger sync or download immediately instead of waiting for scheduled jobs.\n\nنافذة التشغيل اليدوي تسمح بتشغيل المزامنة أو التحميل فورًا بدل انتظار الجدول.\n\n- Manual Sync refreshes IPTV data and metadata.\n- Manual Download builds the accepted queue and starts the downloader.\n- Stop and Kill All controls exist in maintenance areas for emergency process control.\n- The dashboard reflects running state after the action.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/29-sync-download-run-buttons.jpg\" alt=\"Manual Sync And Download Buttons\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 30. Download Settings\n\nThe download settings panel controls the root media folder, aria2c connection count, IMDb CSV import, trash folder, smart restart, speed threshold, and automatic interval.\n\nلوحة إعدادات التحميل تتحكم في فولدر الميديا، اتصالات aria2c، CSV IMDb، المهملات، إعادة التشغيل الذكية، والجدول.\n\n- The folder browser avoids manual text editing when selecting storage.\n- aria2c connection count tunes speed per file.\n- Smart restart can recover downloads that remain below a configured speed.\n- Download interval and limits work together to control background activity.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/30-settings-download.jpg\" alt=\"Download Settings\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 31. Global Exclusions\n\nGlobal exclusions remove catalog noise across every section by country, genre, and language while keeping the reason visible.\n\nالاستبعاد العام يقلل ضوضاء الكتالوج في كل الأقسام حسب البلد والنوع واللغة مع سبب واضح.\n\n- Rules apply retroactively to pending items.\n- Excluded items remain searchable and reviewable.\n- Global rules can be overridden or refined by section-specific rules.\n- The dashboard displays exclusion reasons instead of silently hiding items.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/31-settings-exclusions.jpg\" alt=\"Global Exclusions\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 32. Per Section Filters\n\nEach section has independent min-year, rating, and vote-count thresholds so one library can be strict while another remains broad.\n\nكل قسم له حدود مستقلة للسنة والتقييم وعدد الأصوات، فتقدر تجعل قسم صارم وآخر واسع.\n\n- Threshold updates can release or exclude pending items.\n- Supports different policies for movies, foreign series, Arabic sections, and children sections.\n- Min votes helps avoid unknown low-signal titles.\n- Filter state is stored in DB-backed section configuration.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/32-settings-section-filters.jpg\" alt=\"Per Section Filters\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 33. Banned Keywords\n\nBanned keyword rules exclude titles that match section-specific words or phrases.\n\nقواعد الكلمات المحظورة تستبعد العناوين المطابقة لكل قسم.\n\n- Useful for dubbed, cam, duplicate language, or provider naming noise.\n- Rules are per-section, not one global blunt rule.\n- Changes run retroactively on pending content.\n- Matched items retain a reason so the rule can be audited later.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/33-settings-banned-keywords.jpg\" alt=\"Banned Keywords\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 34. Pre Rejected Keywords\n\nPre-rejected keywords are stronger than normal exclusions: matching items go to Rejected state directly.\n\nالكلمات المرفوضة مسبقًا أقوى من الاستبعاد؛ العناصر المطابقة تنتقل إلى حالة الرفض مباشرة.\n\n- Useful for titles the user never wants in a specific section.\n- Keeps the Rejected tab as an intentional decision record.\n- Can be tuned independently from global country/genre/language rules.\n- Rules are logged when updated.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/34-settings-pre-rejected.jpg\" alt=\"Pre Rejected Keywords\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 35. Section Country Rules\n\nPer-section country rules let one section allow a region while another excludes it.\n\nقواعد البلاد لكل قسم تسمح بسياسة مختلفة من قسم لآخر.\n\n- Country, genre, language, and year rules can be section-specific.\n- This prevents a global rule from damaging specialized libraries.\n- Breakdown charts help choose values before saving.\n- Retroactive application keeps old pending rows aligned with new rules.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/35-settings-section-countries.jpg\" alt=\"Section Country Rules\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 36. Browse And Exclude\n\nBrowse \u0026 Exclude is a visual provider browser for reviewing items directly from Settings.\n\nBrowse \u0026 Exclude هو متصفح مرئي لمراجعة محتوى المزود من داخل الإعدادات.\n\n- Pick a section and review its source catalog.\n- Search provider items without leaving settings.\n- Reject or exclude obvious noise quickly.\n- Covers are reused when already cached in the local DB.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/36-settings-browse-exclude.jpg\" alt=\"Browse And Exclude\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 37. Backups\n\nThe backup panel creates, lists, restores, uploads, downloads, and deletes database backups from the UI.\n\nلوحة النسخ الاحتياطي تنشئ وتعرض وتسترجع وترفع وتحمل وتحذف نسخ قاعدة البيانات من الواجهة.\n\n- Manual backups can be created before risky changes.\n- Restore actions create a safety copy first.\n- Automatic retention keeps recent daily backups.\n- Backup history is visible without shell access.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/37-settings-backups.jpg\" alt=\"Backups\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 38. Database Browser\n\nThe admin database browser exposes tables, counts, pagination, search, maintenance, controlled SQL, and row-level inspection.\n\nمتصفح قاعدة البيانات الإداري يعرض الجداول، الأعداد، الصفحات، البحث، الصيانة، SQL، وفحص الصفوف.\n\n- Shows normalized tables for media, decisions, downloads, logs, trash, tracking, discovery, and settings.\n- Maintenance can optimize the DB.\n- Cover repair can be launched from admin tools.\n- The browser is a diagnostic surface, not the normal settings backend.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/38-settings-database-browser.jpg\" alt=\"Database Browser\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 39. Dark Theme\n\nLight, dark, and automatic modes cover the dashboard, settings, modals, cards, charts, overlays, and admin panels.\n\nالوضع الفاتح والداكن والأوتوماتيك يغطي اللوحة، الإعدادات، النوافذ، الكروت، الرسوم، ولوحات الإدارة.\n\n- Theme mode is saved as a setting.\n- Holiday themes can temporarily overlay the base mode.\n- Mobile and desktop share the same theme system.\n- Cards, badges, charts, and settings controls were tuned for contrast.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/39-dark-theme.jpg\" alt=\"Dark Theme\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 40. Series Status Bar\n\nThe series status bar summarizes the active view with compact counts and state markers.\n\nشريط حالة المسلسلات يلخص العرض الحالي بأعداد وعلامات مختصرة.\n\n- Designed for dense scanning without opening every card.\n- Works with Accepted and other state tabs.\n- Counts are tied to backend status state.\n- Useful when large sections need quick triage.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/40-status-bar-series.jpg\" alt=\"Series Status Bar\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 41. Accepted Future Schedule Badges\n\nAccepted cards can show future episode signals when schedule data says episodes exist but should not yet be downloaded or reclaimed.\n\nكروت المقبول يمكن أن تعرض مؤشرات الحلقات المستقبلية عندما تؤكد بيانات الجدول أنها لم تحن بعد.\n\n- Separates local count, online count, and future count.\n- Prevents unaired episodes from being treated as missing failures.\n- Feeds Plex reclaim safety so future content blocks premature cleanup.\n- Schedule support is controlled by the Plex/future episode settings path.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/41-accepted-future-schedules.jpg\" alt=\"Accepted Future Schedule Badges\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 42. VOD Episode List With Future Rows\n\nThe VOD episode view distinguishes local, online, missing, watched, and future episodes inside one list.\n\nعرض حلقات VOD يميز بين المحلي، الأونلاين، الناقص، المشاهد، والمستقبلي في قائمة واحدة.\n\n- Future rows are visible but not treated as downloadable now.\n- Local-first episode resolution keeps browser playback fast.\n- The cache can refresh provider episode catalogs on demand.\n- The same catalog supports badges, watchlist, and accepted cards.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/42-vod-future-episodes.jpg\" alt=\"VOD Episode List With Future Rows\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 43. S Watchlist Future Filter\n\nThe S-Watchlist panel tracks series progress and can filter items with upcoming/future episodes.\n\nلوحة S-Watchlist تتابع تقدم المسلسلات وتفلتر الأعمال التي لها حلقات قادمة.\n\n- Shows watched progress and future availability together.\n- Helps decide what to keep tracking even if all aired episodes are done.\n- Works with IMDb watchlist coverage and excluded-new workflows.\n- Future filters prevent manual hunting through accepted sections.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/43-watchlist-future-filter.jpg\" alt=\"S Watchlist Future Filter\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 44. Plex Connect And Future Dates\n\nPlex Connect links local Plex libraries to IPTV sections, refreshes watch activity, and controls the future episode date feature.\n\nPlex Connect يربط مكتبات Plex بالأقسام، يحدث نشاط المشاهدة، ويتحكم في ميزة مواعيد الحلقات القادمة.\n\n- Connect, re-test, disconnect, library discovery, and user refresh are managed from Settings.\n- User interest per section affects reclaim and tracking decisions.\n- Future date refresh supports Accepted, VOD, Watchlist, and Plex reclaim safety.\n- The published capture is cropped/redacted to show the feature without exposing private operational values.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/44-plex-connect-schedule-redacted.jpg\" alt=\"Plex Connect And Future Dates\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 45. Connected Devices Overview\n\nThe Connected Devices panel summarizes client health, versions, active/disconnected counts, update state, and repair readiness.\n\nلوحة الأجهزة المتصلة تلخص صحة العملاء، الإصدارات، المتصل والمنقطع، حالة التحديث، وجاهزية الإصلاح.\n\n- Telemetry groups devices by version, OS, platform, and history.\n- Overview cards show fleet state before opening per-device detail.\n- The full admin panel includes command relay and repair actions for authorized maintenance.\n- The public capture is cropped to overview metrics only.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/45-connected-devices-overview.jpg\" alt=\"Connected Devices Overview\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n### 46. Gone From IPTV Inbox\n\nThe Gone inbox is a user-driven review queue for items that disappeared from the provider catalog.\n\nGone inbox هو صندوق مراجعة للعناصر التي اختفت من كتالوج المزود.\n\n- Each item can be swapped to a replacement, sent through trash, or ignored.\n- Silent auto-delete was replaced with explicit user choice.\n- The inbox protects local files and accepted decisions from provider churn.\n- It integrates with disk discovery, trash metadata, and identity safeguards.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/egphp/iptv-manager-updates/main/screenshots/46-gone-from-iptv-inbox.jpg\" alt=\"Gone From IPTV Inbox\" width=\"100%\"\u003e\u003c/p\u003e\n\n---\n\n## Complete Settings Reference | جرد الإعدادات\n\nThe settings screen is split into focused panels. This list follows the current Settings partials and JavaScript modules inspected from the source tree.\n\n| Panel | What It Controls | التفاصيل |\n|---|---|---|\n| General - IPTV Connection | Server/domain field, primary account fields, second account option, connection test, domain resolver, IMDb watchlist URL | إعداد الاتصال الأساسي، حساب إضافي للسرعة، اختبار الاتصال، إيجاد الدومينات، وربط IMDb Watchlist |\n| General - Metadata APIs | TMDB field and OMDb field used for posters, ratings, cast, plot, countries, release data, and IDs | حقول خدمات الميتاداتا التي تغذي البوسترات والتقييمات والطاقم والوصف والبلد والتواريخ |\n| General - Download Settings | Media root, folder browser, aria2c connections, IMDb CSV import, trash folder, smart restart toggle, speed threshold, automatic download interval | فولدر الميديا، متصفح الفولدرات، اتصالات aria2c، CSV، المهملات، إعادة التشغيل الذكية، والجدول |\n| General - Download Limits | Daily files, daily GB, monthly files, monthly GB, and live usage status | حدود يومية وشهرية بعدد الملفات والحجم مع حالة الاستخدام |\n| General - Series Stale Detection | Stale-days threshold and section selection for automatic stale-series handling | عدد أيام اعتبار المسلسل قديمًا واختيار الأقسام التي يطبق عليها |\n| General - Theme Mode | Auto, light, and dark modes | الوضع الأوتوماتيك والفاتح والداكن |\n| Global Exclusions | Countries, genres, and languages applied across all sections | استبعاد عام للبلاد والأنواع واللغات |\n| Section Filters | Min year, min rating, min votes per section | حدود مستقلة لكل قسم للسنة والتقييم وعدد الأصوات |\n| Section Rules | Banned keywords, pre-rejected keywords, section countries, genres, and languages | كلمات محظورة، كلمات مرفوضة مسبقًا، وقواعد بلاد/أنواع/لغات لكل قسم |\n| Browse \u0026 Exclude | Visual provider browser for rejecting or excluding items from settings | تصفح مرئي لمحتوى المزود والاستبعاد من داخل الإعدادات |\n| Backups | Create, upload, restore, download, delete, and review backup history | إنشاء، رفع، استرجاع، تحميل، حذف، ومراجعة النسخ الاحتياطية |\n| Plex Connect | Connect, re-test, disconnect, library discovery, user refresh, per-section interest, and future episode date toggle | ربط Plex، إعادة اختبار، اكتشاف المكتبات، تحديث المستخدمين، اهتمام المستخدم بكل قسم، وتفعيل مواعيد الحلقات القادمة |\n| Themes | Holiday theme list, preview, and activation | قائمة ثيمات المناسبات، المعاينة، والتفعيل |\n| Remote | Remote access state and support controls for allowed admin workflows | حالة الوصول البعيد وأدوات الدعم للمسارات الإدارية المسموحة |\n| Maintenance | Sync interval, manual Sync, Start Download, Stop Download, Kill All, auto-maintenance status | جدول المزامنة، تشغيل يدوي، بدء/إيقاف التحميل، Kill All، وحالة الصيانة التلقائية |\n| Publish | Admin release package creation and publish status | إنشاء ونشر حزم التحديث من لوحة الإدارة |\n| Database | Table browser, search, pagination, maintenance, controlled SQL, and row inspection | تصفح الجداول، بحث، صفحات، صيانة، SQL مضبوط، وفحص الصفوف |\n\n## Architecture | البنية\n\n```text\nBrowser / PWA\n  -\u003e Flask blueprints on Cheroot HTTPS\n  -\u003e SQLite WAL + config_store + normalized media tables\n  -\u003e Sync pipeline: IPTV API -\u003e TMDB/OMDb/IMDb -\u003e filters -\u003e DB\n  -\u003e Download pipeline: accepted decisions -\u003e aria2c -\u003e local media -\u003e metadata/tagging\n  -\u003e Playback: direct local, proxy/remux, guarded transcode cache, Plex library use\n  -\u003e Recovery: disk discovery, integrity, trash, backups, gone inbox\n  -\u003e Operations: logs, telemetry, connected devices, publish, managed runtime/toolchain\n```\n\n| Layer | Role |\n|---|---|\n| Docker + setup scripts | Supported production deployment, persistent data, SSL/mDNS setup, Windows guided install |\n| Flask + Cheroot | Dashboard, APIs, PWA, local playback, settings, admin surfaces |\n| SQLite WAL | Media, decisions, sections, categories, downloads, watch state, trash, logs, telemetry, settings |\n| Sync package | Provider fetch, API-shape handling, metadata enrichment, cover caching, filters, schedules |\n| Downloader package | Queue building, limits, aria2c orchestration, resume, tagging, integrity cooperation |\n| Frontend modules | Dashboard cards, search, filters, logs, Plex, devices, settings, live playback, themes |\n| Operations layer | Connected devices, support channels, runtime/toolchain updates, release publish verification |\n\n## Full Documentation Index | فهرس الجرد الكامل\n\n- [`docs/FEATURE_INVENTORY.md`](docs/FEATURE_INVENTORY.md) - full feature, settings, data, job, and safety-rule inventory.\n- [`docs/SOURCE_TREE_AUDIT.md`](docs/SOURCE_TREE_AUDIT.md) - source tree map with route, frontend, DB, sync, downloader, and template files inspected.\n- [`docs/API_ENDPOINTS.md`](docs/API_ENDPOINTS.md) - generated inventory of 299 route decorators.\n- [`docs/LAST_MONTH_CHANGELOG.md`](docs/LAST_MONTH_CHANGELOG.md) - last-month build log grouped by date from the source repository.\n- [`docs/SCREENSHOT_AUDIT.md`](docs/SCREENSHOT_AUDIT.md) - screenshot list, OCR result, metadata result, and public-image notes.\n\n## First Run | أول تشغيل\n\n1. Open `https://iptv.local`.\n2. Accept the local certificate prompt once, or install the local CA from `/install-ca`.\n3. Open Settings and fill the IPTV connection fields.\n4. Add metadata service fields if you want richer posters, ratings, cast, plot, and release data.\n5. Create sections, attach IPTV categories, choose media folders, and set filters.\n6. Run Sync.\n7. Review Pending, accept what you want, and let the downloader handle the accepted queue.\n\n## Operational Notes | ملاحظات تشغيلية\n\n- Published screenshots are curated public views; admin-heavy captures are cropped or redacted before publishing.\n- Settings are stored through `config_store`; the normalized `settings` table is compatibility support.\n- Media removal goes through Trash so restore metadata remains available.\n- IDs crossing DB/config/UI boundaries are compared as strings.\n- OMDb is treated as authority when an IMDb ID exists.\n- Docker-first remains the supported production workflow.\n\n## Support | الدعم\n\nIf the project saves you time, bandwidth, or frustration, support helps continued development:\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.paypal.com/ncp/payment/GYPXYRC3MJ85C\"\u003e\u003cimg src=\"https://img.shields.io/badge/Donate-PayPal-blue?style=for-the-badge\u0026logo=paypal\" alt=\"Donate\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## License\n\nMIT License - free to use, modify, and distribute.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fegphp%2Fiptv-manager-updates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fegphp%2Fiptv-manager-updates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fegphp%2Fiptv-manager-updates/lists"}