Files
ohm_streaming/app/downloaders/video_players/__init__.py
T
root d4d8d8a3b6
CI / Test (Python 3.11) (push) Has been cancelled
CI / Test (Python 3.12) (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Type Check (push) Has been cancelled
CI / Summary (push) Has been cancelled
refactor: migrate main.py to modular routers and add project roadmap
- Migrated monolithic main.py to feature-scoped routers in app/routers/
- Added GEMINI.md for project context and AI instructional guidelines
- Updated README.md with a comprehensive modernization plan (SQL migration, robust scraping DSL, frontend modernization)
- Improved authentication with cookie support and modular JS
- Updated test suite and documentation
2026-03-24 10:12:04 +00:00

57 lines
1.6 KiB
Python

"""Video hosting services (players) downloaders"""
from .base import BaseVideoPlayer
# Import all video player downloaders
from .doodstream import DoodStreamDownloader
from .sibnet import SibnetDownloader
from .vidmoly import VidMolyDownloader
from .sendvid import SendVidDownloader
from .lpayer import LpayerDownloader
from .unfichier import UnFichierDownloader
from .uptobox import UptoboxDownloader
from .rapidfile import RapidFileDownloader
from .vidzy import VidzyDownloader
from .luluv import LuLuvidDownloader
from .uqload import UqloadDownloader
from .smoothpre import SmoothpreDownloader
__all__ = [
"BaseVideoPlayer",
"DoodStreamDownloader",
"SibnetDownloader",
"VidMolyDownloader",
"SendVidDownloader",
"LpayerDownloader",
"UnFichierDownloader",
"UptoboxDownloader",
"RapidFileDownloader",
"VidzyDownloader",
"LuLuvidDownloader",
"UqloadDownloader",
"SmoothpreDownloader",
]
def get_video_player(url: str) -> BaseVideoPlayer:
"""Factory function to get the appropriate video player for a URL"""
players = [
DoodStreamDownloader(),
SibnetDownloader(),
VidMolyDownloader(),
SendVidDownloader(),
LpayerDownloader(),
UnFichierDownloader(),
UptoboxDownloader(),
RapidFileDownloader(),
VidzyDownloader(),
LuLuvidDownloader(),
UqloadDownloader(),
SmoothpreDownloader(),
]
for player in players:
if player.can_handle(url):
return player
# Return None if no match (should not happen in normal flow)
return None