Files
guizang-social-card-skill/scripts/package-live-photo.py
T
郭浩andClaude 65720aa63e fix: v0.15 审查修复 — 文件名冲突、版本锁定、文档补全、降级路径
审查 Codex v0.15 后修复以下问题:

1. agent.md → AGENT.md:消除 macOS 大小写不敏感文件系统上的文件名冲突
2. HANDOFF.md:validator 规则数从"6 条"更正为"R1-R9"
3. makelive 版本锁定到 0.7.0(live-photo-production.md + package-live-photo.py)
4. 补充 Swift metadata helper 脚本的执行说明和依赖要求
5. platform-specs.md:将"Observed support"改为"截至 2026-07 实测"
6. SKILL.md:补充 GIF/MP4 降级路径,覆盖无法走 iPhone/AirDrop 的发布场景

由 Kiro (Claude Code) 完成审查和修复。

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-01 16:14:55 +08:00

39 lines
1.1 KiB
Python

#!/usr/bin/env python3
"""Package a JPG/MOV pair as an AirDrop-friendly Live Photo .pvt bundle.
Run with:
UV_CACHE_DIR=/private/tmp/uv-cache \
UV_TOOL_DIR=/private/tmp/uv-tools \
uvx --from 'makelive==0.7.0' python scripts/package-live-photo.py IMG.JPG IMG.MOV
"""
from __future__ import annotations
import argparse
from pathlib import Path
from makelive import save_live_photo_pair_as_pvt
def main() -> None:
parser = argparse.ArgumentParser(description="Package a JPG/MOV pair as a Live Photo .pvt bundle.")
parser.add_argument("jpg", type=Path, help="Key photo path, usually 1080x1440 JPG.")
parser.add_argument("mov", type=Path, help="Paired H.264 MOV path.")
args = parser.parse_args()
jpg = args.jpg.expanduser().resolve()
mov = args.mov.expanduser().resolve()
if not jpg.exists():
raise SystemExit(f"missing JPG: {jpg}")
if not mov.exists():
raise SystemExit(f"missing MOV: {mov}")
asset_id, pvt_path = save_live_photo_pair_as_pvt(str(jpg), str(mov))
print(asset_id)
print(pvt_path)
if __name__ == "__main__":
main()