AI-powered audio and video transcription using OpenAI Whisper or AssemblyAI. Use when converting recordings to text, generating subtitles, or creating searchable transcripts.
Note: Review PROFILE.md for user-specific transcription preferences, provider settings, and formatting options.
Master Briefing: Global brand voice at
~/.superskills/master-briefing.yamlapplies automatically. Skill profile overrides when conflicts exist.
Convert audio and video to accurate text transcripts with timestamps, perfect for creating course materials, show notes, and searchable content.
Transcriber.py (in src/):
Basic Transcription:
from superskills.transcriber.src import transcribe_file
result = transcribe_file("recording.mp3")
print(result.transcript)
print(f"Duration: {result.duration_seconds}s")
print(f"Words: {result.word_count}")
With Timestamps:
from superskills.transcriber.src import Transcriber
transcriber = Transcriber(provider="openai")
result = transcriber.transcribe(
"session.mp4",
include_timestamps=True,
output_format="srt"
)
print(f"Saved to: {result.output_file}")
Batch Processing:
files = ["session1.mp3", "session2.mp3", "session3.mp3"]
results = transcriber.transcribe_batch(files, output_format="json")
for result in results:
print(f"{result.source_file}: {result.word_count} words")
Extract Marketing Quotes:
result = transcriber.transcribe("podcast.mp3", include_timestamps=True)
quotes = transcriber.extract_key_quotes(result, min_words=15, max_quotes=5)
for quote in quotes:
print(quote)
TXT: Plain text transcript
JSON: Full metadata including timestamps and confidence
SRT: Standard subtitle format for video players
VTT: WebVTT format for web video
# OpenAI Whisper (recommended)
OPENAI_API_KEY=your_openai_api_key
# Or AssemblyAI (alternative)
ASSEMBLYAI_API_KEY=your_assemblyai_api_key
Global .env (repository root):
echo "OPENAI_API_KEY=sk-your-key" >> .env
Or skill-specific .env:
echo "OPENAI_API_KEY=sk-your-key" >> superskills/transcriber/.env
With Narrator (Podcast Transcripts):
from superskills.narrator.src import PodcastGenerator
from superskills.transcriber.src import Transcriber
podcast = PodcastGenerator()
result = podcast.generate_podcast(segments, "episode.mp3")
transcriber = Transcriber()
transcript = transcriber.transcribe("episode.mp3", output_format="txt")
print(transcript.transcript)
With Marketer (Social Snippets):
from superskills.transcriber.src import Transcriber
from superskills.marketer.src import SocialMediaPublisher
transcriber = Transcriber()
result = transcriber.transcribe("training.mp4", include_timestamps=True)
quotes = transcriber.extract_key_quotes(result, min_words=15, max_quotes=3)
publisher = SocialMediaPublisher()
for quote in quotes:
publisher.schedule_post(quote, platforms=["TWITTER", "LINKEDIN"])
With CoursePackager (Searchable Transcripts):
from superskills.transcriber.src import Transcriber
transcriber = Transcriber()
results = transcriber.transcribe_batch(
["lesson1.mp4", "lesson2.mp4", "lesson3.mp4"],
output_format="json"
)