| name | swipefile |
| description | SwipeFile — система насмотренности. Разбор видео и контента в Notion через персональные линзы. Полный пайплайн: онбординг → транскрипт → мульти-линзовый анализ → Notion + накопление базы приёмов. Активируется на: YouTube ссылка, 'swipefile', 'разбор видео', 'swipe file', 'разбери видео'. Поддерживает YouTube, статьи, Threads. |
| context | fork |
| $ARGUMENTS | URL видео или статьи для разбора |
SwipeFile v4 — система насмотренности
Философия
SwipeFile — не просто разбор видео. Это система накопления насмотренности: каждое разобранное видео делает тебя сильнее. Агент разбирает контент через несколько профессиональных линз, адаптированных под ТВОИ цели.
Онбординг (первый запуск)
При первой ссылке от пользователя — НЕ делать разбор сразу. Сначала:
Шаг 1: Объяснить
SwipeFile — это разбор чужого контента на приёмы, которые ты можешь украсть и адаптировать. Каждый разбор попадает в твою Notion-базу, и со временем у тебя накапливается библиотека проверенных приёмов, хуков, структур и идей.
Шаг 2: Спросить цель
Для чего ты разбираешь контент? Например:
- Делаю контент (посты, видео, reels) и хочу учиться у лучших
- Строю продукт и ищу маркетинговые приёмы
- Изучаю нишу и конкурентов
- Развиваю личный бренд
Расскажи своими словами — что тебе важно вытаскивать из видео?
Шаг 3: Уточнить контекст
- Какие платформы? (Threads, Telegram, YouTube, Instagram, TikTok)
- Какая ниша?
- Что уже делаешь? (чтобы понимать уровень)
Шаг 4: Настроить Notion
Для работы нужна Notion база SwipeFile.
- Скопируй шаблон: https://galson.notion.site/swipefile-factory?v=30d6ad1acb5981cda5bf000c7b47dbf4
- Подключи Notion интеграцию (если ещё нет)
- Скинь мне ссылку на твою скопированную базу — я запомню ID
Получить ID базы от пользователя → записать в MEMORY.md:
## SwipeFile
- Notion DB ID: <id>
- Цель: <что пользователь ответил>
- Ниша: <ниша>
- Платформы: <список>
- Контекст: <что уже делает>
Шаг 5: Подтвердить
Готово! Теперь просто кидай ссылку на видео или статью — я сделаю полный разбор под твои задачи. Со временем у тебя накопится база приёмов с кросс-связями.
Основной пайплайн (после онбординга)
Человек кидает ссылку → агент делает разбор автоматически.
1. Получить транскрипт
python3 scripts/get_transcript.py <url> /tmp/swipefile_transcript.txt
Если не YouTube (статья, Thread) → web_fetch для извлечения текста.
2. Получить метаданные и обложку
web_fetch URL → title, автор, канал, длительность.
YouTube thumbnail: извлечь video ID из URL и построить URL обложки:
https://i.ytimg.com/vi/{VIDEO_ID}/maxresdefault.jpg (HD, 1280×720)
- Fallback:
https://i.ytimg.com/vi/{VIDEO_ID}/hqdefault.jpg (если maxres недоступен)
Сохранить thumbnail_url для шагов 4 и 5.
3. Авто-определение типа контента
По транскрипту определить:
- tutorial — пошаговые инструкции
- interview — разговор двух+ людей
- rant/opinion — мнение, горячий take
- case-study — разбор конкретного кейса
- review — обзор инструмента/продукта
- livestream — запись стрима
Тип влияет на то, какие линзы активируются и какие секции акцентируются.
4. Создать страницу в Notion
python3 scripts/create_page.py "<Автор — Название>" "<url>" "<source_type>" "<tags>" "<use_for>" "<attention>" "<how_to_use>" "<thumbnail_url>"
Последний аргумент thumbnail_url — опциональный. Если передан, устанавливается как cover страницы в Notion (красивая обложка сверху).
Properties — подбирать автоматически по содержанию:
| Property | Как подбирать |
|---|
| Tags | По теме контента (из существующих + новые по смыслу) |
| Source Type | YouTube / Article / Thread / Tweet |
| Use For | Платформы пользователя из MEMORY.md |
| Attention | High = крутой контент; Implement = конкретные техники для внедрения |
| How to use | 1-2 предложения через призму ЦЕЛИ пользователя из MEMORY.md |
5. Мульти-линзовый анализ
Один агент анализирует контент через несколько профессиональных ролей. Какие линзы активируются — зависит от типа контента и цели пользователя.
Базовые секции (всегда):
- 📺 Callout — автор, канал, ссылка, тема, длительность, тип контента
1b. 🖼 Обложка — image-блок с YouTube thumbnail (сразу после callout). Формат:
{"type": "image", "image": {"type": "external", "external": {"url": "https://i.ytimg.com/vi/{VIDEO_ID}/maxresdefault.jpg"}}}
SKIP если: контент не с YouTube (статья, Thread)
2. 📋 Summary — 10 ключевых тезисов
3. 🏗️ Структура — арка повествования, как построен контент
4. 🪝 Хуки — 7 формулировок хуков (с объяснением почему работают)
5. 🧠 Триггеры — 5-6 психологических триггеров
6. ✨ Фишки автора — 7 уникальных приёмов подачи
7. 🔓 Укради это — 5 готовых шаблонов/формул для копирования
8. 🎯 Применение — оценка применимости к ЦЕЛЯМ пользователя (из MEMORY.md)
9. 📝 Готовые черновики — посты под ПЛАТФОРМЫ пользователя (из MEMORY.md)
10. ⏱️ Таймкоды — 5-7 золотых моментов (youtu.be/<id>?t=<sec> deeplinks)
11. 💬 Quotes — 7-8 цитат НА РУССКОМ (перевод если EN)
12. 🔗 Кросс-связи — похожие приёмы из других разборов + Notion ссылки
13. 💎 Главные инсайты — 5 callout-блоков
Линзы (активируются по контенту):
👁 Линза: Визуал (если есть графика, обложки, оформление)
- Визуальный стиль, цвета, шрифты
- Обложка/превью — почему кликабельно
- Референсы для каруселей
- Идеи для обложек пользователя
- SKIP если: talking head без графики, подкаст
📊 Линза: Маркетинг (если есть воронка, CTA, монетизация)
- Воронка: от хука к CTA
- Призывы к действию — формулировки
- Монетизация — как автор зарабатывает
- Позиционирование и отстройка
- Метрики если упоминаются
- SKIP если: чисто технический туториал
🔧 Линза: Техника (если упоминаются инструменты, API, стек)
- Все сервисы: название, назначение, цена, URL
- API и интеграции
- Автоматизации и workflow
- Промпты если показаны
- SKIP если: нет технической составляющей
📤 Линза: Платформы (если можно переупаковать)
- SEO: ключевые слова, хештеги
- Таблица переупаковки: платформа → формат → что адаптировать
- Рекомендации по времени публикации
- SKIP если: контент не подходит для переупаковки
6. Кросс-связи
Для каждого упомянутого автора/инструмента:
python3 scripts/search_db.py "<запрос>"
Найденные совпадения → вставить Notion URL в секцию кросс-связей.
Формат: "Похожий приём у Автор — но здесь новый угол: ..."
7. Залить блоки в Notion
Сгенерировать все блоки в JSON → записать в /tmp/swipefile_blocks.json:
python3 scripts/notion_batch_append.py <page_id> /tmp/swipefile_blocks.json
Батчи по 25 блоков, не более 100 за раз.
8. Обновить базу приёмов
После каждого разбора — обновить в MEMORY.md секцию ## SwipeFile Stats:
## SwipeFile Stats
- Разборов: 12
- Авторов: 8
- Топ-паттерны: storytelling hook (5x), contrast CTA (3x), personal opener (4x)
- Последний: Alex Finn — "Как я заработал на AI" (28 Feb)
Накопление насмотренности
После каждого разбора:
Краткий отчёт пользователю:
✅ Разбор готов: Автор — Название
📊 Активных линз: 3 из 4
🔗 Найдено связей: 2 (с разборами X и Y)
💡 Ключевой приём: [самый ценный takeaway для пользователя]
Каждые 10 разборов (или по запросу "статистика swipefile"):
Обзор насмотренности:
- Сколько разборов, авторов, тем
- Самые частые паттерны и приёмы
- Какие темы покрыты хорошо, где пробелы
- Рекомендации: "У тебя 8 разборов про AI, но 0 про storytelling — вот что стоит посмотреть"
По запросу "покажи мои [хуки/CTA/приёмы]":
Собрать из всех разборов по теме через поиск в Notion DB.
Размеры
- Видео 5-30 мин: ~130-160 блоков (базовые + 2-3 линзы)
- Лайвы 30+ мин: ~90-110 блоков
- Короткие <5 мин: ~60-80 блоков
- Статьи/Threads: ~50-70 блоков
Notion Block Format
{"type": "heading_2", "heading_2": {"rich_text": [{"text": {"content": "📋 Summary"}}]}}
{"type": "bulleted_list_item", "bulleted_list_item": {"rich_text": [{"text": {"content": "Текст"}}]}}
{"type": "callout", "callout": {"icon": {"emoji": "📺"}, "rich_text": [{"text": {"content": "Текст"}}]}}
{"type": "numbered_list_item", "numbered_list_item": {"rich_text": [{"text": {"content": "Текст"}}]}}
{"type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Текст"}}]}}
{"type": "divider", "divider": {}}
Bold: {"text": {"content": "жирный"}, "annotations": {"bold": true}}
Критичные правила
- Онбординг обязателен — без цели и Notion DB ID разбор не делать
- Всё через призму пользователя — цель, ниша, платформы из MEMORY.md
- Цитаты НА РУССКОМ — если видео на EN, перевести
- Кросс-связи со ссылками — каждое упоминание автора = поиск в DB
- Таймкоды с deeplinks —
youtu.be/<id>?t=<sec>, не просто "02:05"
- Линзы могут быть SKIP — не натягивать, если нечего вытащить
- Python subprocess+curl для Notion API — urllib виснет
- Батчи по 25 блоков — не более 100 за раз