CLI tool and Python library for downloading movies, series, and video content from flex-kino.com using yt-dlp.
- Flexible episode filtering for TV series (by season and episode ranges or custom lists)
- Custom output directory and file path formatting
- Support for
yt-dlpstream selection, multi-thread downloading, and dry-run execution - CLI interface and programmatic Python API
Install using pip:
pip install kino-flex-dlOr using poetry:
poetry add kino-flex-dlRun using the kino-flex-dl entrypoint (or flex-dl) or via module execution:
kino-flex-dl <slug> [options]Or:
python -m flex_dl <slug> [options]positional arguments:
slug flex-kino.com title slug
options:
-h, --help show help message and exit
-f FORMAT, --format FORMAT
download format string passed to yt-dlp
-s SERIES, --series SERIES
series filter ("*[start,[stop,step]]:..." for ranges or "s1,s2:e1,e2|...")
-v STUDIO, --studio STUDIO
studio name, slug, #id or index
-o OUT, --out OUT output file path template
-e EXE, --exe EXE yt-dlp executable path (default: yt-dlp)
-x multithread yt-dlp execution
-l dry-run mode (print generated commands without running)
Print yt-dlp download commands without executing them:
kino-flex-dl movie-slug -lDownload specific seasons and episodes:
kino-flex-dl series-slug -s "1,2:1,2,3" -f "best"from flex_dl import FlexClient
with FlexClient(print_only=False, executable="yt-dlp") as client:
client.download(
slug="series-slug",
out="{f[original_name]}/{e[season]:0>2}/{e[series]:0>2}.%(ext)s",
file_format="best",
filter_episodes=lambda season, episode: season == 1,
add=[],
)- Python >= 3.8
yt-dlpinstalled and available inPATH
Distributed under the MIT License. See LICENSE for details.