DocShipper is a post-production utility that turns NLE XML exports into usable paperwork fast.
It parses XML from tools like Premiere, uses the edit as the source of truth, and automates two common deliverables:
- shotlists with source timecodes and screenshots
- music cue sheets with timecodes, metadata, and legal/library fields
Both can be generated separately or together in the same UX flow.
Status: active development, working prototype.
Uses an XML export plus a reference video file to generate a client-ready shotlist.
- parse clip boundaries directly from Premiere XML for frame-accurate timing
- find cut points from the timeline
- capture screenshots at those edits
- populate source timecodes and screenshots into a client template or custom layout
- support clip name, source in/out, record in/out, duration, and screenshot fields
The generated workbook is saved as <source_name>_shotlist.xlsx.
Scans the XML for linked audio, then:
- finds referenced music files
- locates their usage in the edit
- extracts embedded metadata from source media
- fills cue-sheet-ready fields for legal and delivery use
- generates a formatted Excel cue sheet automatically
If the XML contains both picture and music data, DocShipper can run both workflows in one pass and return separate deliverables from the same session.
- Upload an NLE XML export.
- Choose shotlist, cue sheet, or both.
- For shotlists, add a reference video file.
- Generate Excel outputs from the parsed timeline and linked media.
- Python 3.9+
ffmpegandffprobefor screenshot generation and video analysismediainfofor music metadata extraction
Python dependencies are listed in requirements.txt and include Streamlit, pandas, openpyxl, Pillow, PyMediaInfo, and defusedxml.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtInstall system packages:
# macOS
brew install ffmpeg mediainfo
# Ubuntu / Debian
sudo apt install ffmpeg mediainfostreamlit run app.pyThen open http://localhost:8501.
- Export an XML from the NLE, such as Premiere Pro.
- Upload the XML on the landing page.
- Choose
Shotlist. - Upload the matching reference video file.
- Select either a client Excel template or a custom layout.
- Review field mapping, set screenshot options, and generate the workbook.
- Upload the NLE XML.
- Choose
Cue Sheet. - Start processing.
- Download the generated Excel cue sheet.
- Upload the XML.
- If both video and audio references are detected, choose
Both. - Upload the reference video and configure the shotlist options.
- Run processing once and download both deliverables.
- removes manual shot logging from timelines
- speeds up cue-sheet prep for post and legal workflows
- supports client templates without rebuilding spreadsheets by hand
- keeps picture and music paperwork in one simple flow
app.py: Streamlit entrypoint, page flow, session state, and workflow orchestrationprocessors/: parsing, screenshot generation, Excel output, and metadata extractionui/: reusable Streamlit components and stylingutils/: shared helpers like timecode conversion and filename sanitizationLAUNCH.md: short local setup notes
- The current UI is built around Premiere XML input, even though the backend processor also contains EDL and OTIO parsing support.
- Cue-sheet generation depends on the referenced audio files still being available at the paths stored in the XML.
- There is no automated test suite in the repository yet; validation is currently manual through the Streamlit app.