ad-spend-optimizer
Analyze paid advertising performance across channels and recommend budget reallocation to maximize ROAS and minimize CAC. Use…
Automate repetitive audio tasks with Python using PyDub for batch processing, format conversion, normalization, and content assembly. Use when: Processing large numbers of audio files consistently; Converting between audio formats at scale; Normalizing loudness across a batch of
Claude Code
$ npx -y skills add guia-matthieu/clawfu-skills --skill pydub-automation --agent claude-code
Codex
$ npx skills add guia-matthieu/clawfu-skills --skill pydub-automation -a codex -y
Cursor
$ npx skills add guia-matthieu/clawfu-skills --skill pydub-automation -a cursor -y
Gemini CLI
$ npx skills add guia-matthieu/clawfu-skills --skill pydub-automation -a gemini-cli -y
GitHub Copilot
$ npx skills add guia-matthieu/clawfu-skills --skill pydub-automation -a github-copilot -y
OpenCode
$ npx skills add guia-matthieu/clawfu-skills --skill pydub-automation -a opencode -y
Windsurf
$ npx skills add guia-matthieu/clawfu-skills --skill pydub-automation -a windsurf -y
name: pydub-automation description: "Automate repetitive audio tasks with Python using PyDub for batch processing, format conversion, normalization, and content assembly. Use when: Processing large numbers of audio files consistently; Converting between audio formats at scale; Normalizing loudness across a batch of files; Assembling intros/outros automatically to episodes; Trimming silence or extracting segments programmatically" license: MIT metadata: author: ClawFu version: 1.0.0 mcp-server: "@clawfu/mcp-skills"
> Automate repetitive audio tasks with Python using PyDub for batch processing, format conversion, normalization, and content assembly.
**Source**: PyDub Library (James Robert) + Python Audio Processing
**Core Principle**: "Audio operations that take hours manually can run in minutes with code." PyDub provides a high-level interface that abstracts FFmpeg's complexity, making common operations accessible to non-audio engineers.
**Why This Matters**: Content teams producing regular podcasts, courses, or video content spend significant time on repetitive audio tasks. Automation enables consistent quality at scale while freeing humans for creative work.
| Claude Does | You Decide | |-------------|------------| | Structures production workflow | Final creative direction | | Suggests technical approaches | Equipment and tool choices | | Creates templates and checklists | Quality standards | | Identifies best practices | Brand/voice decisions | | Generates script outlines | Final script approval |
1. **Batch processes audio files** - Apply same operations to hundreds of files 2. **Converts formats** - MP3, WAV, FLAC, OGG, and more 3. **Normalizes loudness** - Consistent levels across episodes 4. **Assembles content** - Concatenate intros, content, outros 5. **Extracts segments** - Trim, split, and slice audio programmatically
Help me write a PyDub script to [describe task]. Input files: [format, location] Output requirements: [format, specs]
Create a Python script that processes all audio files in a folder: - Input: [source folder, file type] - Operations: [what to do] - Output: [destination, naming convention]
This PyDub script isn't working as expected: [paste code] Expected: [what you want] Actual: [what's happening]
When automating audio with PyDub, follow this methodology:
## Installation # Install PyDub pip install pydub # FFmpeg is required (PyDub uses it under the hood) # macOS: brew install ffmpeg # Ubuntu/Debian: sudo apt-get install ffmpeg # Windows: # Download from ffmpeg.org, add to PATH
## Basic Imports from pydub import AudioSegment from pydub.effects import normalize, compress_dynamic_range from pydub.silence import detect_silence, split_on_silence import os from pathlib import Path
---
## Loading and Saving Audio
# Load audio file (format auto-detected from extension)
audio = AudioSegment.from_file("input.mp3")
audio = AudioSegment.from_file("input.wav", format="wav")
# Save audio file
audio.export("output.mp3", format="mp3", bitrate="192k")
audio.export("output.wav", format="wav")
# Export with metadata
audio.export(
"output.mp3",
format="mp3",
bitrate="192k",
tags={"artist": "Brand Name", "album": "Podcast"}
)## Basic Properties
print(f"Duration: {len(audio)} ms")
print(f"Channels: {audio.channels}")
print(f"Frame rate: {audio.frame_rate} Hz")
print(f"Sample width: {audio.sample_width} bytes")
print(f"dBFS: {audio.dBFS}") # Volume level---
## Volume Adjustments
# Increase volume by 6 dB
louder = audio + 6
# Decrease volume by 3 dB
quieter = audio - 3
# Normalize to target level (0 dB = maximum)
normalized = normalize(audio)
# Normalize to specific headroom
def normalize_to_target(audio, target_dBFS=-16):
"""Normalize audio to target loudness."""
change_in_dBFS = target_dBFS - audio.dBFS
return audio.apply_gain(change_in_dBFS)
normalized = normalize_to_target(audio, target_dBFS=-16)## Batch Normalization
def normalize_folder(input_dir, output_dir, target_dBFS=-16):
"""Normalize all audio files in a folder."""
input_path = Path(input_dir)
output_path = Path(output_dir)
output_path.mkdir(exist_ok=True)
for file in input_path.glob("*.mp3"):
audio = AudioSegment.from_file(file)
normalized = normalize_to_target(audio, target_dBFS)
output_file = output_path / file.name
normalized.export(output_file, format="mp3", bitrate="192k")
print(f"Processed: {file.name}")
# Usage
normalize_folder("raw_episodes/", "processed_episodes/", target_dBFS=-16)---
## Basic Concatenation
intro = AudioSegment.from_file("intro.mp3")
content = AudioSegment.from_file("episode.mp3")
outro = AudioSegment.from_file("outro.mp3")
# Concatenate (+ operator)
full_episode = intro + content + outro
# Add silence between segments
silence = AudioSegment.silent(duration=2000) # 2 seconds
full_episode = intro + silence + content + silence + outro
full_episode.export("final_episode.mp3", format="mp3")## Podcast Assembly Script
def assemble_episode(
content_file,
intro_file="assets/intro.mp3",
outro_file="assets/outro.mp3",175 expert marketing methodologies for AI agents. Free. Open source. MIT licensed. Dunford on positioning. Schwartz on copywriting. Cialdini on persuasion. Ogilvy on advertising. Hormozi on offers. Voss on negotiation.
Analyze paid advertising performance across channels and recommend budget reallocation to maximize ROAS and minimize CAC. Use…
Build profitable Google Ads campaigns by applying Perry Marshall's 80/20 principles to paid search optimization Use when:…
Apply 2026's top graphic design trends to any creative brief. Based on Kittl × Savee's 2026 Design Trends Report (10 trends + 2…
Transformez une image 2D en modèle 3D animé prêt pour le web ou le jeu en moins de 30 minutes, en utilisant le workflow Dilum…
Art direction framework for generating warm minimalist photography via AI image generators (Flux, Midjourney, DALL-E). Separates…
Visual design direction framework organized by emotional intent (Warm/Cold x Active/Calm). The first design reference system that…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…