TOOLS / 01
CUE SHEET XML
Convierte un cue sheet CSV anotado en una linea de tiempo XML que Premiere importa directo.
Turns an annotated cue-sheet CSV into a timeline XML that Premiere imports directly.
01
Para que sirveWhat it is for
El director anota un CSV con SELECT y Notes sobre una lista de fotos; el editor necesita eso en el timeline sin retipear nada. Esta herramienta genera un FCP7 XML con las imagenes seleccionadas en V1 y las notas como texto sobre cada clip en V2. Tambien hace el camino inverso: saca un CSV fresco de un timeline ya armado para la siguiente ronda de notas.
The director marks up a CSV with SELECT and Notes over a photo list; the editor needs that on the timeline without retyping anything. This tool builds an FCP7 XML with the selected images on V1 and the notes as text over each clip on V2. It also runs the other way: pull a fresh CSV from an existing timeline for the next round of notes.
02
1. El CSV que espera1. The CSV it expects
Cuatro columnas con encabezado obligatorio: File Name, Duration, SELECT, Notes. Duration es timecode a 24fps. SELECT es la letra x (mayuscula o minuscula, se recorta el espacio). Notes es texto libre, incluyendo comas entre comillas.
Four columns, header required: File Name, Duration, SELECT, Notes. Duration is 24fps timecode. SELECT is the letter x (case-insensitive, whitespace trimmed). Notes is free text, including quoted commas.
03
2. Que fila entra en el XML2. Which rows make it into the XML
Una fila se incluye si SELECT es x, o si Notes tiene contenido, o ambas cosas. Es intencional: una nota debe verse en el timeline aunque la imagen no haya sido seleccionada, porque a veces la nota sugiere un reemplazo.
A row is included if SELECT is x, or Notes has content, or both. This is intentional: a note needs to be visible on the timeline even when the image wasn't selected, because the note is often a suggested replacement.
04
3. Como arma el XML3. How it builds the XML
Secuencia FCP7 xmeml a 23.976fps con dos pistas de video: V1 con los stills en la duracion exacta del CSV, V2 con overlays de texto (generador Outline Text) alineados clip por clip sobre cada fila que tenga nota.
FCP7 xmeml sequence at 23.976fps with two video tracks: V1 holds the stills at the CSV's exact duration, V2 holds text overlays (Outline Text generator) aligned clip-for-clip over every row with a note.
05
4. El camino inverso4. The reverse direction
xml_to_csv.py lee solo la primera pista de video (V1) y genera un CSV nuevo con SELECT marcado en cada clip y Notes vacio, listo para que el director anote la siguiente ronda.
xml_to_csv.py reads only the first video track (V1) and produces a fresh CSV with SELECT marked on every clip and Notes empty, ready for the director's next round of notes.
06
Como usarloHow to use it
-
01
Genera el XML desde tu cue sheet, indicando donde estan las fotos referenciadas.
Generate the XML from your cue sheet, pointing to where the referenced photos live.
python3 scripts/csv_to_xml.py --csv cues.csv --xml-out cut.xml --photo-root /ruta/a/fotos -
02
Si las fotos estan repartidas en varias carpetas, repite --photo-root por cada una; se buscan en orden, sin subcarpetas.
If photos are spread across several folders, repeat --photo-root once per folder; they are searched in order, non-recursively.
python3 scripts/csv_to_xml.py --csv cues.csv --xml-out cut.xml --photo-root /fotos/full-res --photo-root /fotos/camara-b --sequence-name "Corte 01" -
03
Importa el XML resultante en Premiere Pro como cualquier secuencia FCP7.
Import the resulting XML into Premiere Pro like any FCP7 sequence.
-
04
Cuando el editor arma un corte en el timeline y hace falta la siguiente ronda de notas, extrae un CSV fresco desde ese XML.
When the editor builds a cut on the timeline and it's time for the next round of notes, extract a fresh CSV from that XML.
python3 scripts/xml_to_csv.py --xml cut.xml --csv-out cues_next.csv -
05
Guarda cada version generada con sufijo _GENERATED o _REVIEW_n junto al archivo original, para no sobreescribir la ronda anterior.
Save each generated version with a _GENERATED or _REVIEW_n suffix next to the source file, so you never overwrite the prior round.
07
Que necesitasWhat you need
- Python 3.10 o superior instaladoPython 3.10 or newer installed
- El CSV con encabezado exacto: File Name, Duration, SELECT, NotesA CSV with the exact header: File Name, Duration, SELECT, Notes
- Acceso a las carpetas de fotos referenciadas en el CSVAccess to the photo folders referenced in the CSV
- Adobe Premiere Pro para importar el XML resultanteAdobe Premiere Pro to import the resulting XML
08
IlustracionIllustration
File Name Duration SELECT Notes
J1020399.png 00:00:10:01 x longer
J1020412.png 00:00:03:19 x later in timeline
J1020396.png 00:00:06:06 ->
L1040816.png 00:00:08:12 x somewhere else
csv_to_xml.py -->
V2 (text overlay): [longer] [later in timeline] [somewhere else]
V1 (image clips): [J1020399] [J1020412] [L1040816]09
LimitesLimits
- No interpreta el contenido de las notas; las coloca tal cual como texto sobre el clipIt does not interpret note content; it places it verbatim as text over the clip
- La busqueda de fotos por --photo-root no es recursiva; si la imagen esta en una subcarpeta no listada, no apareceThe --photo-root photo search is not recursive; an image in an unlisted subfolder will not be found
- xml_to_csv.py solo lee la primera pista de video (V1); los overlays de texto en V2 se ignoranxml_to_csv.py only reads the first video track (V1); text overlays on V2 are ignored
- Si un nombre de archivo del CSV no se resuelve en ninguna carpeta, la fila se omite y se avisa por stderrIf a CSV filename doesn't resolve in any folder, the row is skipped and a warning is printed to stderr
AccesoAccess
Se comparte directo.Shared directly.
Convierte un cue sheet CSV anotado en una linea de tiempo XML que Premiere importa directo.
Turns an annotated cue-sheet CSV into a timeline XML that Premiere imports directly.
Descargar .zip →Download .zip → EscribenosWrite to us
Verificacion. Comprueba el zip antes de abrirlo: sha256. En macOS: shasum -a 256 archivo.zip.Verification. Check the zip before opening it: sha256. On macOS: shasum -a 256 file.zip.
Licencia. Publicado bajo licencia MIT: libre de usar, modificar y redistribuir, incluso con fines comerciales, siempre que se conserve el aviso de copyright y de licencia. Se entrega tal cual (“as is”), sin garantía de ningún tipo; el uso es bajo tu propio riesgo y Chea Studios no responde por daños derivados de su uso. El .zip incluye su archivo LICENSE. Copyright © 2026 Chea Studios.License. Released under the MIT license: free to use, modify, and redistribute, including commercially, as long as the copyright and license notice are kept. Provided “as is,” with no warranty of any kind; use is at your own risk and Chea Studios is not liable for damages arising from its use. The .zip includes its LICENSE file. Copyright © 2026 Chea Studios.