| name | media-backup |
| description | Archive Clawdbot conversation media (photos, videos) to a local folder. Works with any sync service (Dropbox, iCloud, Google Drive, OneDrive). |
| metadata | {"clawdbot":{"env":["MEDIA_BACKUP_DEST"]}} |
Media Backup
Simple backup of Clawdbot inbound media to a local folder. No APIs, no OAuth - just file copy.
Works with any cloud sync service since it's just copying to a local folder.
Setup
Set your destination folder:
export MEDIA_BACKUP_DEST="$HOME/Dropbox/Clawdbot/media"
export MEDIA_BACKUP_DEST="$HOME/Library/Mobile Documents/com~apple~CloudDocs/Clawdbot/media"
export MEDIA_BACKUP_DEST="$HOME/Google Drive/Clawdbot/media"
Or add to clawdbot config:
{
"skills": {
"entries": {
"media-backup": {
"env": {
"MEDIA_BACKUP_DEST": "/path/to/your/folder"
}
}
}
}
}
Usage
uv run skills/media-backup/scripts/backup.py
uv run skills/media-backup/scripts/backup.py --dry-run
uv run skills/media-backup/scripts/backup.py --source ~/.clawdbot/media/inbound --dest ~/Backups/media
uv run skills/media-backup/scripts/backup.py status
How It Works
- Scans
~/.clawdbot/media/inbound/ for media files
- Organizes by date:
YYYY-MM-DD/filename.jpg
- Tracks archived files by content hash (no duplicates)
- Your cloud service syncs the folder automatically
Cron Setup
Run hourly backup:
0 * * * * cd ~/clawd && uv run skills/media-backup/scripts/backup.py >> /tmp/media-backup.log 2>&1
Or via Clawdbot cron job with task:
Run media backup: uv run skills/media-backup/scripts/backup.py
If files archived, reply: 📸 Archived [N] media files
If none, reply: HEARTBEAT_OK
Supported Formats
jpg, jpeg, png, gif, webp, heic, mp4, mov, m4v, webm