LICENSE
MANIFEST.in
README.md
pyproject.toml
src/pycaps/__init__.py
src/pycaps/bootstrap.py
src/pycaps/logger.py
src/pycaps/ai/__init__.py
src/pycaps/ai/gpt.py
src/pycaps/ai/llm.py
src/pycaps/ai/llm_provider.py
src/pycaps/animation/__init__.py
src/pycaps/animation/animation.py
src/pycaps/animation/definitions.py
src/pycaps/animation/element_animator.py
src/pycaps/animation/preset_animation.py
src/pycaps/animation/primitive_animation.py
src/pycaps/animation/builtin/__init__.py
src/pycaps/animation/builtin/preset/__init__.py
src/pycaps/animation/builtin/preset/fade_in.py
src/pycaps/animation/builtin/preset/fade_out.py
src/pycaps/animation/builtin/preset/pop_in.py
src/pycaps/animation/builtin/preset/pop_in_bounce.py
src/pycaps/animation/builtin/preset/pop_out.py
src/pycaps/animation/builtin/preset/slide_in.py
src/pycaps/animation/builtin/preset/slide_out.py
src/pycaps/animation/builtin/preset/zoom_in.py
src/pycaps/animation/builtin/preset/zoom_out.py
src/pycaps/animation/builtin/primitive/__init__.py
src/pycaps/animation/builtin/primitive/fade_in_primitive.py
src/pycaps/animation/builtin/primitive/pop_in_primitive.py
src/pycaps/animation/builtin/primitive/slide_in_primitive.py
src/pycaps/animation/builtin/primitive/zoom_in_primitive.py
src/pycaps/api/__init__.py
src/pycaps/api/api_key_service.py
src/pycaps/api/api_sender.py
src/pycaps/api/emoji_in_segments_api.py
src/pycaps/api/pycaps_tagger_api.py
src/pycaps/cli/__init__.py
src/pycaps/cli/cli.py
src/pycaps/cli/config_cli.py
src/pycaps/cli/preview_styles_cli.py
src/pycaps/cli/render_cli.py
src/pycaps/cli/template_cli.py
src/pycaps/common/__init__.py
src/pycaps/common/config_service.py
src/pycaps/common/element_container.py
src/pycaps/common/models.py
src/pycaps/common/types.py
src/pycaps/effect/__init__.py
src/pycaps/effect/effect.py
src/pycaps/effect/clip/__init__.py
src/pycaps/effect/clip/animate_segment_emojis_effect.py
src/pycaps/effect/clip/clip_effect.py
src/pycaps/effect/clip/typewriting_effect.py
src/pycaps/effect/sound/__init__.py
src/pycaps/effect/sound/builtin_sound.py
src/pycaps/effect/sound/sound.py
src/pycaps/effect/sound/sound_effect.py
src/pycaps/effect/sound/presets/click-light.mp3
src/pycaps/effect/sound/presets/click.mp3
src/pycaps/effect/sound/presets/ding-long.mp3
src/pycaps/effect/sound/presets/ding-short.mp3
src/pycaps/effect/sound/presets/ding.mp3
src/pycaps/effect/sound/presets/glitch-static.mp3
src/pycaps/effect/sound/presets/glitch.mp3
src/pycaps/effect/sound/presets/heart-beat.mp3
src/pycaps/effect/sound/presets/hit-intense.mp3
src/pycaps/effect/sound/presets/hit-strong.mp3
src/pycaps/effect/sound/presets/pop-2.mp3
src/pycaps/effect/sound/presets/pop.mp3
src/pycaps/effect/sound/presets/slide-paper.mp3
src/pycaps/effect/sound/presets/swoosh.mp3
src/pycaps/effect/sound/presets/whoosh-2.mp3
src/pycaps/effect/sound/presets/whoosh-deep.mp3
src/pycaps/effect/sound/presets/whoosh.mp3
src/pycaps/effect/text/__init__.py
src/pycaps/effect/text/emoji_in_segment_effect.py
src/pycaps/effect/text/emoji_in_segment_getter.py
src/pycaps/effect/text/emoji_in_segment_llm_getter.py
src/pycaps/effect/text/emoji_in_word_effect.py
src/pycaps/effect/text/modify_words_effect.py
src/pycaps/effect/text/remove_punctuation_marks_effect.py
src/pycaps/effect/text/text_effect.py
src/pycaps/layout/__init__.py
src/pycaps/layout/definitions.py
src/pycaps/layout/layout_updater.py
src/pycaps/layout/layout_utils.py
src/pycaps/layout/line_splitter.py
src/pycaps/layout/positions_calculator.py
src/pycaps/layout/word_size_calculator.py
src/pycaps/pipeline/__init__.py
src/pycaps/pipeline/caps_pipeline.py
src/pycaps/pipeline/caps_pipeline_builder.py
src/pycaps/pipeline/json_config_loader.py
src/pycaps/pipeline/json_schema.py
src/pycaps/pipeline/subtitle_data_service.py
src/pycaps/renderer/__init__.py
src/pycaps/renderer/css_subtitle_renderer.py
src/pycaps/renderer/letter_size_cache.py
src/pycaps/renderer/pictex_subtitle_renderer.py
src/pycaps/renderer/playwright_screenshot_capturer.py
src/pycaps/renderer/rendered_image_cache.py
src/pycaps/renderer/renderer_page.py
src/pycaps/renderer/subtitle_renderer.py
src/pycaps/renderer/previewer/__init__.py
src/pycaps/renderer/previewer/css_subtitle_previewer.py
src/pycaps/renderer/previewer/previewer.html
src/pycaps/selector/__init__.py
src/pycaps/selector/tag_based_selector.py
src/pycaps/selector/time_event_selector.py
src/pycaps/selector/word_clip_selector.py
src/pycaps/tag/__init__.py
src/pycaps/tag/definitions.py
src/pycaps/tag/tag_condition.py
src/pycaps/tag/tagger/__init__.py
src/pycaps/tag/tagger/ai_tagger.py
src/pycaps/tag/tagger/external_llm_tagger.py
src/pycaps/tag/tagger/semantic_tagger.py
src/pycaps/tag/tagger/structure_tagger.py
src/pycaps/template/__init__.py
src/pycaps/template/builtin_template.py
src/pycaps/template/constants.py
src/pycaps/template/local_template.py
src/pycaps/template/template.py
src/pycaps/template/template_factory.py
src/pycaps/template/template_loader.py
src/pycaps/template/template_service.py
src/pycaps/template/preset/classic/pycaps.template.json
src/pycaps/template/preset/classic/styles.css
src/pycaps/template/preset/default/pycaps.template.json
src/pycaps/template/preset/default/styles.css
src/pycaps/template/preset/default/resources/black.ttf
src/pycaps/template/preset/explosive/pycaps.template.json
src/pycaps/template/preset/explosive/styles.css
src/pycaps/template/preset/explosive/resources/black.ttf
src/pycaps/template/preset/fast/pycaps.template.json
src/pycaps/template/preset/fast/styles.css
src/pycaps/template/preset/hype/pycaps.template.json
src/pycaps/template/preset/hype/styles.css
src/pycaps/template/preset/hype/resources/komika.ttf
src/pycaps/template/preset/line-focus/pycaps.template.json
src/pycaps/template/preset/line-focus/styles.css
src/pycaps/template/preset/line-focus/resources/black.ttf
src/pycaps/template/preset/minimalist/pycaps.template.json
src/pycaps/template/preset/minimalist/styles.css
src/pycaps/template/preset/model/main.py
src/pycaps/template/preset/model/preview.hash
src/pycaps/template/preset/model/pycaps.template.json
src/pycaps/template/preset/model/styles.css
src/pycaps/template/preset/neo-minimal/pycaps.template.json
src/pycaps/template/preset/neo-minimal/styles.css
src/pycaps/template/preset/retro-gaming/pycaps.template.json
src/pycaps/template/preset/retro-gaming/styles.css
src/pycaps/template/preset/retro-gaming/resources/PressStart2P.ttf
src/pycaps/template/preset/vibrant/pycaps.template.json
src/pycaps/template/preset/vibrant/styles.css
src/pycaps/template/preset/vibrant/resources/black.ttf
src/pycaps/template/preset/word-focus/pycaps.template.json
src/pycaps/template/preset/word-focus/styles.css
src/pycaps/template/preset/word-focus/resources/black.ttf
src/pycaps/transcriber/__init__.py
src/pycaps/transcriber/base_transcriber.py
src/pycaps/transcriber/google_audio_transcriber.py
src/pycaps/transcriber/preview_transcriber.py
src/pycaps/transcriber/transcript_format.py
src/pycaps/transcriber/transcript_loader.py
src/pycaps/transcriber/whisper_audio_transcriber.py
src/pycaps/transcriber/editor/__init__.py
src/pycaps/transcriber/editor/editor.html
src/pycaps/transcriber/editor/transcription_editor.py
src/pycaps/transcriber/splitter/__init__.py
src/pycaps/transcriber/splitter/base_segment_splitter.py
src/pycaps/transcriber/splitter/limit_by_chars_splitter.py
src/pycaps/transcriber/splitter/limit_by_words_splitter.py
src/pycaps/transcriber/splitter/split_into_sentences_splitter.py
src/pycaps/utils/__init__.py
src/pycaps/utils/script_utils.py
src/pycaps/utils/time_utils.py
src/pycaps/video/__init__.py
src/pycaps/video/audio_utils.py
src/pycaps/video/subtitle_clips_generator.py
src/pycaps/video/video_generator.py
src/pycaps_ai.egg-info/PKG-INFO
src/pycaps_ai.egg-info/SOURCES.txt
src/pycaps_ai.egg-info/dependency_links.txt
src/pycaps_ai.egg-info/entry_points.txt
src/pycaps_ai.egg-info/requires.txt
src/pycaps_ai.egg-info/top_level.txt
tests/test_pipeline_transcription_path.py
tests/test_render_cli_transcript_flags.py
tests/test_transcript_loader.py