mirror of
https://github.com/tropicoo/yt-dlp-bot.git
synced 2024-11-10 17:15:13 +08:00
28 lines
866 B
Python
28 lines
866 B
Python
import os
|
|
|
|
import yt_dlp
|
|
|
|
_COOKIES_FILEPATH = '/app/cookies/cookies.txt'
|
|
|
|
|
|
def cli_to_api(opts: list) -> dict:
|
|
"""Convert yt-dlp CLI options to internal API ones."""
|
|
default = yt_dlp.parse_options([]).ydl_opts
|
|
diff = {
|
|
k: v for k, v in yt_dlp.parse_options(opts).ydl_opts.items() if default[k] != v
|
|
}
|
|
if 'postprocessors' in diff:
|
|
diff['postprocessors'] = [
|
|
pp for pp in diff['postprocessors'] if pp not in default['postprocessors']
|
|
]
|
|
return diff
|
|
|
|
|
|
def is_file_empty(filepath: str) -> bool:
|
|
"""Check whether the file is empty."""
|
|
return os.path.isfile(filepath) and os.path.getsize(filepath) == 0
|
|
|
|
|
|
def get_cookies_opts_if_not_empty() -> list[str]:
|
|
"""Return yt-dlp cookies option with cookies filepath."""
|
|
return [] if is_file_empty(_COOKIES_FILEPATH) else ['--cookies', _COOKIES_FILEPATH]
|