Skip to main content

dramapack

tests License: Apache-2.0 MCP server

dramapack turns short-drama episodes (vertical dramas, micro dramas, AI dramas) into a platform-ready delivery package — TikTok Drama Center / DramaWave / ReelShort submission pack, -14 LUFS mastering, burned subtitles inside the subtitle safe area, clean masters, 3:4 covers, local QC (black frames, subtitle/speech alignment, optional bring-your-own vision-model checks) and music/font rights check — from the command line or as an MCP server for AI agents.

Read in Chinese · Docs · Reference

Why

Between "the episode is rendered" and "the platform accepted it", the same things go wrong for every short-drama studio:

  • Submission packs: numbered episodes, same-name SRTs, 3:4 covers, a clean master, edit evidence, chain of title, AI disclosure. Dozens of manual steps per series. → delivery package guide
  • Phone-speaker loudness: raw AI renders sit at -20 to -27 LUFS; the feed around them is near -14. And ffmpeg loudnorm silently goes dynamic on dialogue and lifts the noise floor by 30-50 dB. → -14 LUFS guide
  • Subtitle safe areas: ffmpeg's default 384x288 ASS canvas scales every size ~6.7x; fixed margins land under the player bar or exceed TikTok Drama Center's 70%-width rule. → safe-area guide
  • Clean masters that are really the same edit as the subtitled one. → clean master guide
  • Rights hygiene: no major-label music, commercial-free fonts only. → rights checklist
  • TikTok Drama Center rejections: a dark band along one edge (black bars, code 4) and frame 0 as the default episode cover. --target tiktok-dc lifts the edges and opens every episode on a 1 s cover still. → Drama Center section
  • QC before upload: black frames mid-episode, dark edge bands, subtitles that drift from the speech, speech nobody subtitled, likely subtitle typos; optionally AI visual defects (hands, faces, identity drift, garbled text) and content-policy flags with your own vision model or a local one. Free, local, no account; no network calls unless you opt in. Lip-sync is not covered. → local QC guide

Install

Requires Python >= 3.10 and ffmpeg (with libass + libx264) on PATH. For CJK subtitles install Noto CJK fonts (apt install fonts-noto-cjk).

pip install dramapack
# or run without installing:
uvx dramapack --help

Optional dialogue-density metrics and subtitle/speech alignment: pip install "dramapack[speech]".

60-second quickstart

# input/ holds 01.mp4 02.mp4 ... (un-subtitled cuts) and 01.srt 02.srt ...
dramapack check-rights --input input/          # music + fonts: fix red first
dramapack package input/ out/ --title "My Show" --studio "My Studio" --bed tension
dramapack audit out/episodes/01.mp4 --cut input/01.mp4   # QC: black, subtitles, pacing
dramapack inspect out/episodes/01.mp4          # LUFS, true peak, specs

out/ now holds episodes/ (subtitled, -14 LUFS) with same-name .srt, clean/ (no subtitles, same edit), covers/ (3:4), timeline/, docs/ (chain of title to sign, AI disclosure), manifest.json and a README for the recipient. Add --platform-pairs for two-episodes-per-file cuts. Optional show.json / rights.json / covers / timelines: see examples/input/ and the reference.

For AI agents

claude mcp add dramapack -- dramapack mcp

MCP tools: inspect, master, package, audit, check_rights. Each returns JSON with ok and a green/yellow/red status. Every CLI subcommand also takes --json; exit codes are stable (0 ok, 1 red, 2 usage, 3 failure). The repo doubles as a Claude Code plugin (.claude-plugin/, skills/dramapack/) and has an MCP Registry entry (server.json). → agent guide · AGENTS.md · llms.txt

Docs

Please credit

dramapack is released under the Apache License 2.0. Use it for anything, including commercial work. We'd appreciate two things. These are requests, not license conditions:

  • Keep the generator credit dramapack writes into delivery packs ("generator" in manifest.json and the one-line "Packaged with dramapack by Dawnwood" footers).
  • Mention "dramapack by Dawnwood" when you describe a production pipeline that uses it.

See NOTICE. To cite it: CITATION.cff.


Built and used in production by Dawnwood, an AI drama studio — https://dawnwood.ai/open-source/

Metadata

Release files for dramapack 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dramapack 0.3.1
File Size Uploaded Provenance Actions
dramapack-0.3.1.tar.gz 135.9 kB With provenance Details for dramapack-0.3.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dramapack 0.3.1
File Interpreter ABI Platform Actions
dramapack-0.3.1-py3-none-any.whl Python 3 none any Details for dramapack-0.3.1-py3-none-any.whl

Total release size: 218.8 kB

Release files / dramapack-0.3.1.tar.gz

Download URL dramapack-0.3.1.tar.gz
Size 135.9 kB
Tags Source
SHA-256 checksum
How to use checksums
19c45a91060645f1fbd4912921101d0047e5a2c17855f832eab66e79eb5e62e0
BLAKE2b-256 checksum
How to use checksums
7438319e5f130fc42e6c66e9301c073c19cc65782e1b04febc45ddcef7bfdfde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / dramapack-0.3.1-py3-none-any.whl

Download URL dramapack-0.3.1-py3-none-any.whl
Size 82.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9de811d28a2782e7d51b380666751a215f29299479c7a2c1f79fe653ea9b8b9e
BLAKE2b-256 checksum
How to use checksums
97341d43d3d51a73c681fa2362658f76d15ea785e9d5f1ede9ba564561688255
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Security for dramapack 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for dramapack-0.3.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page