Compétence d'exportation de brouillons natifs pour JianYing Pro (剪映)
Cette compétence fournit un pont automatisé et natif pour générer et déployer des brouillons de projets JianYing Pro macOS (11.4+) de qualité production directement à partir de fichiers vidéo, pistes audio et scripts de sous-titres.
Elle résout complètement l'invite de bac à sable « 媒体丢失 / 暂无访问权限 » en empaquetant les projets sous l'architecture de brouillon autonome (自包含草稿架构).
Référence rapide
1. Export CLI en une ligne et ouverture instantanée
python3 scripts/export_draft.py \
--video "/chemin/vers/ma_video.mp4" \
--name "Nom_Projet_Exemple" \
--cover "/chemin/vers/couverture.jpg" \
--subtitles "/chemin/vers/sous-titres.json" \
--open
| Paramètre | Court | Requis | Description |
|---|---|---|---|
--video | -v | Oui | Chemin absolu vers le fichier vidéo source |
--name | -n | Non | Nom du projet dans JianYing (défaut : nom du fichier vidéo) |
--cover | -c | Non | Image miniature de couverture (.jpg / .png) |
--subtitles | -s | Non | Fichier de sous-titres (.json ou .srt) |
--duration | -d | Non | Durée de la vidéo en secondes (détectée automatiquement si omise) |
--open | -o | Non | Redémarrer/lancer immédiatement JianYing Pro et ouvrir le brouillon |
2. Utilisation de l'API Python
from pathlib import Path
import sys
# Ajouter le répertoire des scripts de la compétence
sys.path.insert(0, "/chemin/vers/jianying-draft-export/scripts")
from draft_builder import JianyingDraft
# 1. Initialiser le brouillon
draft = JianyingDraft(name="Ma courte vidéo IP haute dimension", width=1920, height=1080)
# 2. Définir la source vidéo (détecte la durée automatiquement)
draft.set_video("/chemin/vers/video_rendue.mp4")
# 3. Attacher l'image de couverture
draft.set_cover("/chemin/vers/couverture.jpg")
# 4. Ajouter des sous-titres par programmation avec surbrillance bicolore
draft.add_subtitle(
text="Les grands modèles ont des mécanismes anti-triche stricts. La vantardise unidimensionnelle est appelée 'preuve isolée' aux yeux des algorithmes.",
start_sec=8.13,
end_sec=16.46,
highlight="preuve isolée" # Le mot en surbrillance sera rendu en or pur [1.0, 0.84, 0.0] avec des contours noirs
)
# Ou charger depuis un fichier JSON/SRT externe :
# draft.load_subtitles("/chemin/vers/sous-titres.json")
# 5. Compiler, copier automatiquement dans le brouillon autonome et lancer l'application
draft.save_and_inject(open_app=True)
3. Format JSON des sous-titres
L'analyseur de sous-titres accepte soit les fichiers .srt standard, soit une liste JSON :
[
{
"start": 0.0,
"end": 7.68,
"text": "En 2026, la réalité la plus cruelle pour les magasins physiques n'est pas que le voisin baisse ses prix, mais que lorsque le client demande à l'IA quel commerce est le meilleur à proximité, votre boutique n'existe tout simplement pas.",
"hl": "n'existe tout simplement pas"
},
{
"start": 8.13,
"end": 16.46,
"text": "Les grands modèles ont des mécanismes anti-triche stricts. La vantardise unidimensionnelle est appelée 'preuve isolée' aux yeux des algorithmes. Preuve isolée non établie, directement éliminée.",
"hl": "Preuve isolée"
}
]
hl: Sous-chaîne optionnelle qui recevra un style de surbrillance doré à fort contraste avec des bordures noires épaisses.
4. Architecture : Pourquoi le bac à sable macOS nécessite des « brouillons autonomes »
Le bac à sable (sandbox) macOS restreint l'accès de VideoFusion-macOS.app aux fichiers dans ~/Desktop/, ~/.gemini/ ou d'autres répertoires arbitraires.
❌ Mode chemin externe (cassé) :
~/Desktop/IP/video.mp4 -----> JianYing Pro [Sandbox EACCES] -----> Popup "媒体丢失/暂无访问权限"
✅ Mode brouillon autonome (cette compétence) :
~/Movies/JianyingPro/User Data/Projects/com.lveditor.draft/<Projet>/video.mp4
└─> JianYing Pro [Accès natif en lecture/écriture] ──> Aucune invite, lecture instantanée !
Voir macos_sandbox_bypass.md pour une analyse technique plus approfondie.
5. Vérification et dépannage
Pour inspecter si un brouillon a été créé et décrypté correctement :
python3 scripts/verify_draft.py "Nom du projet"
Si libjycodec.dylib nécessite une recompilation (par exemple sur une nouvelle architecture) :
bash scripts/compile_dylib.sh