Teeb taskuhäälingu RSS-voost või transkriptist sisu kõigisse kanalitesse.
Kogu oskus — vaikeversiooni hoitakse GitHubis; sinu muudatused jäävad sinu enda klooni.
# Version check (silent if up to date)
python3 telemetry/version_check.py 2>/dev/null || true
# Telemetry opt-in (first run only, then remembers your choice)
python3 telemetry/telemetry_init.py 2>/dev/null || true
Privaatsus: see oskus logib kasutust lokaalselt kausta
~/.ai-marketing-skills/analytics/. Kaugtelemeetria on ainult vabatahtlik (opt-in). Koodi, failiteid ega repo sisu ei koguta kunagi. Vaatatelemetry/README.md.
Muudab podcasti episoodid täielikuks sisukalendriks üle kõigi platvormide. Üks episood sisse, 15–20 sisutükki välja — hinnatud, dubleeringutest puhastatud ja ajastatud.
Määra sisendallikas ja hangi puhas transkript.
--rss <url>)--episodes N)--transcript <file>)--batch <rss_url> --episodes N)Söötke kogu transkript LLM-ile selle väljavõtmise raamistikuga:
Narratiivikaared — terviklikud looliigud ülesehitusega seadistus → pinge → lahendus. Märgi algus-/lõppajatemplitega.
Tsiteeritavad hetked — löövad, jagatavad väited. Üherealised, mis seisavad omaette. Peavad läbima testi „kas keegi teeks sellest ekraanipildi?“.
Vastuolulised seisukohad — arvamused, mis lähevad vastuollu tavapärase tarkusega. Need, mis panevad inimesed vastama „täiesti nõus ei ole“ või „lõpuks keegi ütles välja“.
Andmepunktid — konkreetsed numbrid, protsendid, dollarisummad, ajavahemikud. Konkreetsed tõenduspunktid, mis lisavad usaldusväärsust.
Lood — isiklikud anekdoodid, juhtumiuuringud, kliendinäited. Peavad sisaldama tegelast, probleemi ja tulemust.
Raamistikud — sammhaaval protsessid, mõttemudelid, otsustusmaatriksid. Kõik struktureeritu, mida inimesed salvestaksid või järjehoidjasse paneksid.
Ennustused — tulevikku suunatud väited trendide, turgude, tehnoloogia kohta. Terasvad seisukohad selle kohta, kuhu asjad liiguvad.
- Type: [narrative_arc | quote | controversial_take | data_point | story | framework | prediction]
- Content: [extracted text]
- Timestamp: [start - end, if available]
- Context: [what was being discussed]
- Viral Score: [0-100, see Step 4]
- Suggested platforms: [where this atom works best]
Iga episoodi puhul loo kõik järgnevad väljavõetud aatomitest:
- Hook: [First 3 seconds — pattern interrupt or bold claim]
- Clip segment: [Timestamp range from transcript]
- Caption overlay: [Text for the screen]
- Platform: [YouTube Shorts / TikTok / Instagram Reels]
- Why it works: [What makes this clippable]
Prioriteedi järjekord: vastuolulised seisukohad > lood puändiga > üllatavad andmepunktid
- Thread hook (tweet 1): [Curiosity gap or bold opener]
- Thread body (5-10 tweets): [Each tweet is one complete thought]
- Thread closer: [CTA — follow, reply, retweet trigger]
- Source atoms: [Which content atoms feed this thread]
Reeglid: ükski säuts ei ületa 280 tähemärki. Iga säuts peab seisma omaette. Kasuta andmepunkte tõestusena.
- Headline: [Specific, benefit-driven]
- Hook paragraph: [Before the "see more" fold — must earn the click]
- Body: [3-5 sections with headers, 800-1200 words]
- CTA: [Engagement driver — question, not link]
- Hashtags: [3-5 relevant, not spammy]
Hääl: professionaalne, kuid mitte korporatiivne. Esimeses isikus. Loopõhine.
- Section headline: [Scannable, specific]
- TL;DR: [One sentence, the core insight]
- Body: [3-5 bullet points, each with a takeaway]
- Pull quote: [The most shareable line from the episode]
- Link: [Back to full episode]
- Quote text: [Max 20 words — must work as text overlay]
- Attribution: [Speaker name]
- Background suggestion: [Color/mood that matches the tone]
- Platform sizing: [1080x1080 for IG, 1200x675 for Twitter, 1080x1920 for Stories]
- Title: [SEO-optimized, includes primary keyword]
- Primary keyword: [Search volume + difficulty estimate]
- Secondary keywords: [3-5 related terms]
- Meta description: [155 chars max]
- H2 sections: [5-7, each maps to a content atom]
- Internal linking opportunities: [Topics that connect to existing content]
- Estimated word count: [1500-2500]
- HOOK (0-3s): [Pattern interrupt — question, bold claim, or visual]
- SETUP (3-15s): [Context — why should they care]
- PAYOFF (15-45s): [The insight, data, or story resolution]
- CTA (45-60s): [Follow, comment prompt, or part 2 tease]
- On-screen text: [Key phrases to overlay]
- B-roll suggestions: [Visual ideas if not talking-head]
Hinda iga loodud tükki kolmel mõõtmel (igaüks 0–100):
| Mõõde | Mida see mõõdab | Signaalid |
|---|---|---|
| Uudsus | Kas see on uus või üllatav? | Vastuvoolu seisukohad, ootamatud andmed, esimene, kes ütleb |
| Vastuolulisus | Kas inimesed vaidlevad selle üle? | Tugevad arvamused, normide väljakutsumine, poole valimine |
| Kasulikkus | Kas keegi saab seda kohe kasutada? | Raamistikud, õpetused, mallid, konkreetsed numbrid |
Viiruslikkuse skoor = (Uudsus × 0,4) + (Vastuolulisus × 0,3) + (Kasulikkus × 0,3)
Enne lõpetamist kontrolli kogu loodud sisu järgneva vastu: 1. See partii — kaks tükki ei tohiks katta sama nurka 2. Hiljutine ajalugu — võrdle viimase N päeva väljundiga (vaikimisi: 30) 3. Sarnasuse künnis — märgi iga paar, millel on >70% semantilist kattuvust
output/content_history.json--calendar)Koonda hinnatud, dubleeringutest puhastatud sisu iganädalasse avaldamiskalendrisse.
{
"week_of": "2024-01-15",
"episode_source": "Episode Title - Guest Name",
"content_pieces": [
{
"date": "2024-01-15",
"time": "09:00 ET",
"platform": "twitter",
"type": "thread",
"content": "...",
"viral_score": 85,
"status": "draft"
}
],
"total_pieces": 18,
"avg_viral_score": 72,
"coverage": {
"twitter": 6,
"linkedin": 3,
"youtube_shorts": 3,
"newsletter": 1,
"blog": 1,
"quote_cards": 4
}
}
Kogu väljund läheb kausta output/:
output/
├── episodes/
│ ├── YYYY-MM-DD-episode-slug/
│ │ ├── transcript.txt
│ │ ├── atoms.json # Extracted content atoms
│ │ ├── content_pieces.json # All generated content
│ │ └── calendar.json # Scheduled calendar
│ └── ...
├── calendar/
│ └── week-YYYY-WNN.json # Aggregated weekly calendar
├── content_history.json # Dedup tracking
└── pipeline_log.json # Run history and stats
# Process latest episode from RSS feed
python podcast_pipeline.py --rss "https://feeds.example.com/podcast.xml"
# Process a local transcript
python podcast_pipeline.py --transcript episode-42.txt
# Batch process last 5 episodes
python podcast_pipeline.py --batch "https://feeds.example.com/podcast.xml" --episodes 5
# Generate weekly calendar from existing outputs
python podcast_pipeline.py --calendar
# Process with custom dedup window
python podcast_pipeline.py --rss "https://feeds.example.com/podcast.xml" --dedup-days 60
# Process and only keep 80+ viral score content
python podcast_pipeline.py --rss "https://feeds.example.com/podcast.xml" --min-score 80
| Muutuja | Nõutav | Kirjeldus |
|---|---|---|
OPENAI_API_KEY |
Jah (Whisperi jaoks) | OpenAI API-võti heli transkribeerimiseks |
ANTHROPIC_API_KEY |
Jah (loomise jaoks) | Anthropicu API-võti sisu loomiseks |
OPENAI_LLM_KEY |
Valikuline | Eraldi OpenAI võti, kui kasutad loomiseks hoopis GPT-d |
| Fail | Otstarve |
|---|---|
podcast_pipeline.py |
Peamine konveieri skript |
requirements.txt |
Pythoni sõltuvused |
README.md |
Seadistus- ja kasutusjuhend |