Commit 2f83bd1
Changed files (3)
src
src/preview/ytdlp.py
@@ -22,6 +22,7 @@ from yt_dlp.utils import DownloadError, ExtractorError, YoutubeDLError
from asr.voice_recognition import asr_file
from config import (
CAPTION_LENGTH,
+ COOKIE,
DB,
DOWNLOAD_DIR,
MAX_FILE_BYTES,
@@ -35,6 +36,7 @@ from config import (
YTDLP_RE_ENCODING_MAX_FILE_BYTES,
cache,
)
+from cookies import ytdlp_bilibili_cookie
from database.database import get_db
from messages.database import copy_messages_from_db, save_messages
from messages.preprocess import preprocess_media
@@ -58,6 +60,7 @@ async def preview_ytdlp(
message: Message,
url: str = "",
*,
+ platform: str = "",
use_db: bool = True,
ytdlp_audio_only: bool = False,
ytdlp_send_video: bool = True,
@@ -133,6 +136,10 @@ async def preview_ytdlp(
"color": "no_color-tty",
"logger": logger,
}
+ if platform == "bilibili" and COOKIE.YTDLP_BILIBILI_USE_COOKIE:
+ cookiefile = await ytdlp_bilibili_cookie()
+ logger.trace(f"Use cookie file: {cookiefile}")
+ ydl_opts["cookiefile"] = cookiefile
if kwargs.get("show_progress"):
loop = asyncio.get_running_loop()
hook = create_hook(kwargs.get("progress"), loop, detail_progress=true(kwargs.get("detail_progress")))
src/config.py
@@ -181,6 +181,7 @@ class COOKIE: # See: https://github.com/easychen/CookieCloud
CLOUD_SERVER = os.getenv("COOKIE_CLOUD_SERVER", "")
CLOUD_KEY = os.getenv("COOKIE_CLOUD_KEY", "")
CLOUD_PASS = os.getenv("COOKIE_CLOUD_PASS", "")
+ YTDLP_BILIBILI_USE_COOKIE = os.getenv("YTDLP_BILIBILI_USE_COOKIE", "0").lower() in ["1", "y", "yes", "t", "true", "on"]
class TID: # see more TID usecase in `src/permission.py`