Logo Lanfrica

omarsaouri/shorts-automation-darija

Domain:

natural language processing

Record type:

software
Creator:
oma
Host:
# Darija YouTube Shorts Automation A fully free, locally-run pipeline that watches Moroccan Darija YouTube channels, downloads long-form videos, transcribes and scores them for highlights, auto-crops to 9:16, burns in Arabic captions and channel branding, and publishes Shorts to YouTube on a schedule, with a daily performance report. No paid APIs, no cloud LLM calls. Transcription, highlight scoring, cropping, and captioning all run locally. > **Status:** solo side project, actively being built out. Watcher, processing pipeline, QC gate, publisher, reporter, and scheduler are all implemented; production-scale reliability (see Known issues) is still being worked on. See `docs/progress.md` for the full build log. ## How it works ```mermaid %%{ init: { 'theme': 'base', 'themeVariables': { 'fontFamily': '"Virgil", "Comic Sans MS", "Cascadia Code", cursive, monospace', 'primaryColor': '#e7f5ff', 'primaryTextColor': '#1e1e1e', 'primaryBorderColor': '#1971c2', 'textColor': '#1e1e1e', 'lineColor': '#1e1e1e', 'secondaryColor': '#ebfbee', 'tertiaryColor': '#fff9db', 'edgeLabelBackground': '#ffffff', 'clusterTextColor': '#1e1e1e', 'signalColor': '#e67e22', 'errorColor': '#c92a2a' } } }%% flowchart LR A[Watcher RSS poll] --> B[Downloader yt-dlp] B --> C[Processor transcribe, score, crop, caption] C --> D[QC Gate dedup + score + format + throttle] D --> E[Publisher YouTube Data API] E --> F[Reporter daily digest] S[(SQLite state.db)] A -.-> S B -.-> S C -.-> S D -.-> S E -.-> S F -.-> S style A fill:#e7f5ff,stroke:#1971c2,stroke-width:2px,color:#1e1e1e; style B fill:#e7f5ff,stroke:#1971c2,stroke-width:2px,color:#1e1e1e; style C fill:#fff9db,stroke:#f59f00,stroke-width:2px,color:#1e1e1e; style D fill:#ffe3e3,stroke:#c92a2a,stroke-width:2px,color:#1e1e1e; style E fill:#ebfbee,stroke:#2b8a3e,stroke-width:2px,color:#1e1e1e; style F fill:#f3d9fa,stroke:#862e9c,stroke-width:2px,color:#1e1e1e; style S fill:#ffffff,stroke:#1e1e1e,stroke-width:2px,color:#1e1e1e; ``` Every stage r …