md2video
md2video is a small agent-friendly workflow for turning source content into a narrated slide video.
What is in this repo
prompts/slide-prompt.md: create a reveal.js deck, CSS theme,script.json, and exported PDF underoutput/<presentation-slug>/.prompts/tts-prompt.md: generate one narration MP3 per slide fromscript.json.prompts/combine-prompt.md: combineoutput.pdfand slide MP3s intovideo.mp4.prompts/script2intro-prompt.md: generateintro.txtfromscript.json.prompts/thumbnail-prompt.md: generatethumbnail.pngfrom a crafted Qwen-Image prompt.prompts/upload-prompt.md: publishvideo.mp4to Bilibili viascripts/upload_bilibili.py.scripts/tts_from_script.py: standaloneuv runTTS helper.scripts/combine_video.py: standaloneuv runvideo assembly helper.scripts/thumbnail_from_prompt.py: standaloneuv runthumbnail image helper.scripts/upload_bilibili.py: standaloneuv runBilibili uploader; reads login cookies straight from the local browser.
Intended workflow
- Start with either a source file such as
source.mdor a direct text prompt. - Use
prompts/slide-prompt.mdto create a presentation workspace underoutput/<presentation-slug>/. - Review the generated presentation workspace and decide whether to continue to the next stage.
- Use
prompts/tts-prompt.mdto createoutput/<presentation-slug>/audio/slide-XX.mp3files. - Use
prompts/combine-prompt.mdto createoutput/<presentation-slug>/video.mp4. - Optionally use
prompts/script2intro-prompt.mdto createoutput/<presentation-slug>/intro.txt. - Optionally use
prompts/thumbnail-prompt.mdto createoutput/<presentation-slug>/thumbnail.png. - Optionally use
prompts/upload-prompt.mdto publishvideo.mp4to Bilibili (title/description come fromintro.txt, cover fromthumbnail.png). The upload publishes directly;--dry-runis available for troubleshooting.
Notes
The prompt files are stage-specific on purpose. Pick the prompt that matches the artifact you want to generate, and keep all outputs for a presentation in the same output/<presentation-slug>/ directory.
Output submodule
Generated presentations live in the ai-video repo, mounted here as the output/ git submodule. Clone with submodules:
git clone --recurse-submodules https://github.com/isomoes-video/md2video.git
# or, in an existing clone:
git submodule update --init
After generating new artifacts, commit and push inside output/ first, then commit the updated submodule pointer in this repo.
No comments yet
Be the first to share your take.