feat(bilibili): support custom video covers

This commit is contained in:
sunshine6666666666
2026-07-11 10:47:39 +08:00
parent 0d3f93e8ac
commit 945bf8e1c0
3 changed files with 19 additions and 1 deletions
+5
View File
@@ -145,6 +145,7 @@ class BilibiliVideoUploadRequest:
tid: int
tags: list[str]
publish_date: datetime | int
thumbnail_file: Path | None = None
@dataclass(slots=True)
@@ -501,6 +502,8 @@ async def upload_bilibili_video(request: BilibiliVideoUploadRequest) -> Path:
]
if request.tags:
arguments.extend(["--tag", ",".join(request.tags)])
if request.thumbnail_file:
arguments.extend(["--cover", str(request.thumbnail_file)])
if isinstance(request.publish_date, datetime):
arguments.extend(["--dtime", str(int(request.publish_date.timestamp()))])
@@ -680,6 +683,7 @@ def build_parser() -> argparse.ArgumentParser:
bilibili_upload_video_parser.add_argument("--desc", required=True, help="Video description")
bilibili_upload_video_parser.add_argument("--tid", required=True, type=int, help="Bilibili category id")
bilibili_upload_video_parser.add_argument("--tags", default="", help="Comma-separated tags, such as tag1,tag2")
bilibili_upload_video_parser.add_argument("--thumbnail", type=existing_file_path, help="Optional Bilibili cover image path")
bilibili_upload_video_parser.add_argument("--schedule", type=schedule_value, help=f"Schedule time in {schedule_help}")
tencent_parser = platform_parsers.add_parser("tencent", help="Tencent/WeChat Channels operations")
@@ -926,6 +930,7 @@ async def dispatch(args: argparse.Namespace) -> int:
tid=args.tid,
tags=parse_tags(args.tags),
publish_date=args.schedule or 0,
thumbnail_file=args.thumbnail,
)
await upload_bilibili_video(request)
print(f"Bilibili video upload submitted: {request.video_file}")