Mon extension Premiere Pro ne s'affiche pas dans la liste – besoin d’aide pour l’intégration
- May 20, 2025
- 2 replies
- 431 views
Bonjour,
Je suis en train de développer une extension (CEP) pour Premiere Pro (version 25.2.3 sur Windows 11 Home) et je rencontre un problème bloquant : mon extension ne s’affiche pas dans la liste des extensions dans Premiere Pro.
Objectif de l’extension
Mon but est de créer une extension nommée Randomizer qui, après avoir mis mes rushs sur la timeline, me permettrait de :
-
Mélanger de manière aléatoire tous les éléments (clips) présents sur la séquence.
-
Coller automatiquement tous les clips mélangés contre le bord gauche de la timeline.
En gros, je fais mes cuts, et un simple clic sur le bouton de l'extension déclenche le shuffle complet des éléments présents.
Structure du projet
Mon dossier principal s'appelle Randomizer Extension, et il contient 3 sous-dossiers :
Randomizer Extension/
├── client/
│ ├── index.html
│ └── index.js
├── csxs/
│ └── manifest.xml
└── src/
└── main.js
Emplacements testés
J’ai placé le dossier Randomizer Extension à deux endroits pour tester son chargement :
ici : C:\Program Files (x86)\Common Files\Adobe\CEP\extensions
et ici : C:\Users\Admin\AppData\Roaming\Adobe\CEP\extensions
et pourtant il n'apparait toujours pas sur premiere pro
Dans le dossier standard des extensions CEP
Le problème :
Mon extension n’apparaît pas du tout dans Premiere Pro, malgré la structure respectée et les bons emplacements utilisés. Mon objectif principal à ce stade est simplement qu’elle apparaisse dans la liste des extensions, avec un bouton cliquable qui, plus tard, déclenchera le mélange des clips.
index.html :
Index.js :
manifest.xml :
Main.jsx (Pour tester) :
Mais je veux que Main.jsx fasse ceci :
function randomizeTimelineClips() {
$.writeln("Début de randomizeTimelineClips - TEST");
alert("Fonction randomizeTimelineClips appelée !");
try {
$.writeln("Vérification de app...");
if (!app) {
throw new Error("Erreur : app n'est pas défini.");
}
$.writeln("Récupération du projet...");
var project = app.project;
$.writeln("Projet récupéré : " + (project ? "OK" : "Échec"));
$.writeln("Récupération de la séquence active...");
var activeSeq = project.activeSequence;
$.writeln("Séquence active : " + (activeSeq ? activeSeq.name : "Aucune"));
if (!activeSeq) {
$.writeln("Erreur : Aucune séquence active");
alert("Aucune séquence active. Ouvre une séquence !");
return "Échec : Aucune séquence active";
}
$.writeln("Récupération des pistes vidéo...");
var videoTracks = activeSeq.videoTracks;
$.writeln("Nombre de pistes vidéo : " + videoTracks.numTracks);
var selectedClips = [];
for (var trackIndex = 0; trackIndex < videoTracks.numTracks; trackIndex++) {
var track = videoTracks[trackIndex];
$.writeln("Piste " + trackIndex + " : " + track.clips.numItems + " clips");
if (track.isLocked()) {
$.writeln("Piste " + trackIndex + " est verrouillée, ignorez.");
continue;
}
for (var clipIndex = 0; clipIndex < track.clips.numItems; clipIndex++) {
var clip = track.clips[clipIndex];
var isSelected = clip.isSelected();
$.writeln("Clip " + clipIndex + " (" + clip.name + ") sélectionné ? " + isSelected);
if (isSelected) {
selectedClips.push({
clip: clip,
trackIndex: trackIndex,
originalStart: clip.start.seconds,
originalDuration: clip.duration.seconds
});
$.writeln("Clip ajouté : " + clip.name);
}
}
}
if (selectedClips.length === 0) {
$.writeln("Erreur : Aucun clip sélectionné");
alert("Aucun clip sélectionné ! Sélectionne des clips dans la timeline.");
return "Échec : Aucun clip sélectionné";
}
if (selectedClips.length < 2) {
$.writeln("Erreur : Moins de 2 clips sélectionnés");
alert("Sélectionne au moins 2 clips pour mélanger !");
return "Échec : Moins de 2 clips sélectionnés";
}
$.writeln("Début du mélange des clips...");
for (var i = selectedClips.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var clipI = selectedClips[i].clip;
var clipJ = selectedClips[j].clip;
var tempStart = selectedClips[i].originalStart;
var tempDuration = selectedClips[i].originalDuration;
$.writeln("Échange entre clip " + i + " et clip " + j);
clipI.setStart(selectedClips[j].originalStart, true);
clipJ.setStart(tempStart, true);
clipI.end.seconds = clipI.start.seconds + selectedClips[j].originalDuration;
clipJ.end.seconds = clipJ.start.seconds + tempDuration;
$.writeln("Clip " + i + " repositionné à " + clipI.start.seconds + "s");
$.writeln("Clip " + j + " repositionné à " + clipJ.start.seconds + "s");
}
activeSeq.setPlayerPosition(activeSeq.getPlayerPosition());
$.writeln("Mise à jour de la timeline effectuée");
alert("Clips sélectionnés mélangés avec succès !");
$.writeln("Mélange terminé avec succès");
return "Succès : Clips mélangés";
} catch (error) {
$.writeln("Erreur dans randomizeTimelineClips : " + error.toString());
alert("Erreur : " + error.toString());
return "Erreur : " + error.toString();
}
}
