Short Drama Publisher
by @ye4wzp
Automated short drama video publisher. Downloads drama content from MoboBoost, uses AI to identify highlight moments, clips 15-second vertical videos with te...
clawhub install short-drama-publisherπ About This Skill
name: short-drama-publisher version: 1.0.0 description: > Automated short drama video publisher. Downloads drama content from MoboBoost, uses AI to identify highlight moments, clips 15-second vertical videos with text overlays, and auto-publishes to Facebook. Strawberry TV workflow clone. Triggers: "ηε§εεΈ", "short drama", "MoboBoost", "video publisher", "θͺε¨εεΈ", "εͺθΎηε§". tags: [video, automation, short-drama, facebook, social-media, content, publisher, chinese] env: MOBOBOOST_COOKIES: "MoboBoost login cookies (JSON format, exported from browser)" FACEBOOK_COOKIES: "Facebook login cookies (JSON format, exported from browser)" requires: - ffmpeg - python3 - playwright
Short Drama Publisher (ηε§θͺε¨εεεΈ)
Automated short drama promotion video workflow, inspired by Strawberry TV model:
1. π₯ Download drama content from MoboBoost 2. π― AI-powered highlight detection (scene changes, audio peaks, subtitle emotion) 3. βοΈ Clip 15-second vertical videos with white English title overlay 4. π€ Auto-publish to Facebook
Prerequisites
System Dependencies
# macOS
brew install ffmpegPython dependencies
pip install playwright opencv-python librosa numpy pyyaml
playwright install chromium
Credentials Setup
1. MoboBoost Cookies
- Login to https://ckoc.cdreader.com
- Export cookies using browser extension (e.g., "EditThisCookie")
- Save as config/moboboost_cookies.json
2. Facebook Cookies
- Login to Facebook
- Export cookies using browser extension
- Save as config/facebook_cookies.json
Usage
Full Automated Workflow
python scripts/daily_workflow.py
Individual Modules
Download content:
python scripts/moboboost_downloader.py --drama-code 613815
Detect highlights:
python scripts/highlight_detector.py --input data/downloads/video.mp4
Clip video:
python scripts/video_editor.py --input video.mp4 --start 01:23 --title "Drama Name"
Publish to Facebook:
python scripts/facebook_publisher.py --video data/outputs/clip.mp4 --drama-code 613815 --drama-name "DramaName"
Daily Cron Job
# Run daily at 9am
0 9 * * * cd /path/to/short-drama-publisher && python scripts/daily_workflow.py >> logs/cron.log 2>&1
Configuration
settings.yaml
# Video settings
video:
duration: 15 # Clip duration (seconds)
width: 1080 # Width
height: 1920 # Height (9:16 vertical)Text overlay settings
text_overlay:
font: "Arial-Bold"
size_ratio: 0.05 # Font size as ratio of video width
color: "#FFFFFF"
border_color: "#000000"
border_width: 2
position_y: 0.75 # Vertical position (ratio from top)AI highlight detection weights
highlight_weights:
scene_change: 0.30
audio_peak: 0.25
subtitle_emotion: 0.25
motion_intensity: 0.20Publishing settings
publishing:
videos_per_day: 3 # Number of videos per day
interval_minutes: 120 # Interval between posts (minutes)
Directory Structure
short-drama-publisher/
βββ SKILL.md # This file
βββ config/
β βββ settings.yaml # Configuration
β βββ moboboost_cookies.json # MoboBoost credentials
β βββ facebook_cookies.json # Facebook credentials
βββ scripts/
β βββ moboboost_downloader.py # Content downloader
β βββ highlight_detector.py # AI highlight detection
β βββ video_editor.py # Video clipping
β βββ facebook_publisher.py # Facebook publisher
β βββ daily_workflow.py # Main workflow
βββ data/
β βββ downloads/ # Raw downloaded content
β βββ outputs/ # Clipped videos
β βββ history.json # Publishing history
βββ fonts/ # Font files
βββ logs/ # Log files
AI Highlight Detection
The highlight detector uses multiple signals to find the most engaging moments:
| Signal | Weight | Method | |--------|--------|--------| | Scene Change | 30% | OpenCV frame-by-frame difference analysis | | Audio Peak | 25% | Librosa audio amplitude analysis | | Subtitle Emotion | 25% | Text sentiment analysis on subtitles | | Motion Intensity | 20% | Optical flow magnitude calculation |
Each frame gets a composite score, and the highest-scoring 15-second segment is selected.
Important Notes
> [!WARNING] > - MoboBoost and Facebook websites may update, requiring script adjustments > - Recommend 1-3 videos per day to simulate organic posting rhythm > - Ensure you have rights to use MoboBoost content for promotion > - Cookie-based auth may expire; re-export periodically
π‘ Examples
Full Automated Workflow
python scripts/daily_workflow.py
Individual Modules
Download content:
python scripts/moboboost_downloader.py --drama-code 613815
Detect highlights:
python scripts/highlight_detector.py --input data/downloads/video.mp4
Clip video:
python scripts/video_editor.py --input video.mp4 --start 01:23 --title "Drama Name"
Publish to Facebook:
python scripts/facebook_publisher.py --video data/outputs/clip.mp4 --drama-code 613815 --drama-name "DramaName"
Daily Cron Job
# Run daily at 9am
0 9 * * * cd /path/to/short-drama-publisher && python scripts/daily_workflow.py >> logs/cron.log 2>&1
βοΈ Configuration
settings.yaml
# Video settings
video:
duration: 15 # Clip duration (seconds)
width: 1080 # Width
height: 1920 # Height (9:16 vertical)Text overlay settings
text_overlay:
font: "Arial-Bold"
size_ratio: 0.05 # Font size as ratio of video width
color: "#FFFFFF"
border_color: "#000000"
border_width: 2
position_y: 0.75 # Vertical position (ratio from top)AI highlight detection weights
highlight_weights:
scene_change: 0.30
audio_peak: 0.25
subtitle_emotion: 0.25
motion_intensity: 0.20Publishing settings
publishing:
videos_per_day: 3 # Number of videos per day
interval_minutes: 120 # Interval between posts (minutes)