ТЗ: Программа для автосборки видео (локальная, для личного использования) Коротко Программа на Python, запускаетсяу меня на ПК (Windows). Делает faceless-видео формата «закадровый голос + сменяющийся видеоряд из фото и клипов» — как исторические документалки на YouTube (референсы прикреплю отдельно). Я ввожу тему → программа пишет сценарий, озвучивает, подбирает под каждый кусок текста видео/фото из бесплатных архивов, собирает → выдаёт готовый MP4. Только для меня. Без сайта, без пользователей, без продажи. Разделение ролей (важно понять) Claude (Anthropic API) — «мозг»: пишет сценарий, делит на сцены, выбирает лучший кадр по смыслу. Работает только с текстом и картинками. Код (ffmpeg/moviepy) — «руки»: ищет и качает файлы из архивов, режет, склеивает, накладывает звук, зум, переходы, экспортирует MP4. Claude видеофайлы НЕ монтирует — это делает код. Как работает (по шагам) 1. Ввод. Простое окно: ввожу тему ролика, выбираю голос озвучки из списка (список голосов подтягивается из ElevenLabs по API). Жму «Создать». Второй режим — вставить готовый сценарий. 2. Сценарий. Claude пишет сценарий по теме заданной длины. 3. Разбивка на сцены. Claude делит сценарий на смысловые сцены (длина по смыслу, не фиксирована) и для каждой возвращает: текст сцены; тип визуала: видео или фото; поисковый запросв двух форматах сразу (Claude отдаёт оба в одном ответе, лишних запросов и затрат нет): развёрнутая фраза — для стоков (Pexels/Pixabay), напр. «18th century royal portrait, dramatic turning point»; краткие ключевые термины/имена — для архивов (Wikimedia, LoC, Archive.org, Europeana), напр. «Marie Antoinette portrait». Код под каждый источник берёт подходящий формат. Claude генерирует запрос по СМЫСЛУ куска и контексту всего видео — даже для абстрактных кусков без явного объекта. Пустых кусков «без запроса» не бывает; highlight: true/false + оценка важности 1-10 (для интро-тизера). Смысловая сцена ≠ кадр. Claude делит текст по СМЫСЛУ (чтобы запрос был осмысленный). Код затем нарезает это на визуальные кадры 4-6 сек, подгоняя тайминг под озвучку: короткая сцена (≤6 сек) → 1 кадр; длинная сцена (напр. 12 сек) → 2-3 кадра по 4-6 сек, под каждый — РАЗНЫЙ, но близкий по смыслу визуал (та же тема, другие ракурсы/кадры), чтобы мысль не висела на одной статичной картинке. Правило 4-6 сек относится к кадру, а не к смысловой разбивке — они на разных уровнях и не конфликтуют. 4. Озвучка. Текст → ElevenLabs API выбранным голосом → аудио. Под длину аудио каждой сцены режется видеоряд. 5. Подбор кадра (ключевой процесс, см. раздел ниже). 6. Сборка через ffmpeg/moviepy: клипы/фото под тайминг озвучки, фото с зумом (эффект Кена Бёрнса), простые переходы, голос поверх. Выход:MP4 1920×1080. Подбор кадра (как выбирается видео/фото под сцену) Поиск во всех источниках сразу по запросу сцены. Под каждый источник берётся подходящий формат запроса (см. разбивку выше): для архивов — краткие термины/имена, для стоков — развёрнутая фраза. Цель — попадать в тему, а не в случайную картинку. Код отбирает топ-5 кандидатов из всей выдачи по баллам (scorer, см. правила ниже). Для видео код извлекает 2-3 стоп-кадра из разных точек клипа (начало/середина/конец) — чтобы Claude оценил клип по кадрам. Claude выбирает лучший из 5 кандидатов по смыслу (реально ли на кадре нужное, подходит ли по настроению сцены). Лимит 3 шага на сцену: нашли подходящее — стоп; если после проверки ничего не подошло — код берёт более общее фото по упрощённому запросу (оно точно найдётся) с усиленным движением. Проверяются ВСЕ кадры (разница в цене копеечная, а качество важнее). Правила отбора кандидатов (scorer) — чтобы брать хорошее, а не мусор Релевантность запросу (позиция в выдаче источника) — главный вес. Не использовалось раньше — проверка по локальной базе использованного, не повторять клипы в моих видео. Формат — горизонтальные 16:9 в приоритет. Качество — ПО-РАЗНОМУ для типа источника: современные стоки (Pexels/Pixabay) — отсекать мыло, требовать HD; исторические архивы — порог низкий/выключен, НЕ терять плёночные и хроникальные кадры, даже низкого разрешения (их ценность в самом материале, а не в чёткости). Длина клипа (для видео) — хватает ли покрыть сцену. Разнообразие — не брать много одинаковых кадров подряд из одного источника, перемешивать источники (чтобы видеоряд был разнообразным, а не из одного архива). Уникальность (меньше совпадений с чужими видео) Рандомизация выдачи (случайный из топ-N, не всегда первый), глубина поиска, локальная база использованного (не повторять клипы в моих видео), опционально — лёгкая обработка клипа (кроп/зеркало/скорость).Когда неиспользованные кадры под запрос кончились: код сначала расширяет поиск (другие источники, глубже в выдачу, переформулировка запроса). Если и это исчерпано — разрешает повтор ранее использованных по приоритету: сначала те, что брались давно (не в последних видео), с обязательной обработкой для визуального отличия. Видео не должно вставать из-за нехватки материала. Источники (все бесплатные, с API) Современное видео+фото: Pexels, Pixabay. Историческое / архивное (public domain): Wikimedia Commons, Archive.org, Library of Congress, Europeana, NASA, Smithsonian Open Access, Flickr Commons,openverse. Каждый источник — отдельный модуль, легко добавить новый. Приоритет источников зависит от темы (историческая → сначала архивы; современная → сначала стоки), настраивается в конфиге. Только public domain / свободные лицензии с правом коммерческого использования. Никакого парсинга чужих YouTube/сайтов, кусков фильмов, картинок «из гугла». Правила видеоряда Интро-тизер (первые 60 сек): нарезка самых эффектных кадров из всего ролика (сцены с наибольшей оценкой важности, где есть видео) под отдельный текст-вступление от Claude («в этом видео вы узнаете…»), кадры без пояснений — как интрига. Потом переход и основная часть. Чередование: видео-вставка минимум каждые ~6 сек, нельзя много фото подряд. Доля видео: не меньше ~40% времени — живые клипы, остальное — фото с движением. Длина кадра: 4-6 сек. Не мельтешить, не держать статику долго. Для чисто исторических тем, где видео нет — фото с усиленным движением (зум + панорама). Опции (вкл/выкл в настройках) Только фото — видео чисто из фото, без клипов. Каждое фото обязательно с движением (зум/ панорама) — статичных «мёртвых» кадров нет даже в этом режиме. Без озвучки — видео собирается по тексту без генерации голоса (код не обращается к ElevenLabs). Иначе — озвучка делается автоматически. Атмосферный оверлей (light leaks / dust & bokeh particles / film grain) — полупрозрачный слой с плавающими частицами/светом/лёгким туманом поверх видеоряда, чтобы кадры выглядели живыми. Установить 5-8 готовых оверлеев на выбор; регулировка прозрачности ползунком (0-100%); можно накладывать и на уже готовое видео отдельно. Бесплатные оверлеи: Pexels, Pixabay, Mixkit, Videezy. Субтитры (вшить или отдельным .srt). Обработка клипов для уникальности. Разрешение/формат, длина видео, доля видео, глубина поиска, число кандидатов (по умолч. 5). Экономия LLM (заложить по умолчанию) Модели — Claude (Anthropic API), раздельно для двух задач, параметр в настройках: проверка/выбор кадров (частая операция) →Claude Haiku — дешёвая, анализирует стоп-кадры (картинки), для оценки «подходит/нет» этого достаточно; генерация сценария и разбивка (редкая операция) →Claude Sonnet — для качества текста. Один API-ключ Claude даёт доступ ко всем моделям (Haiku, Sonnet и др.) — отдельные подписки не нужны. Модель для каждой задачи меняется в настройках, без правки кода. Если модель не выбрана — используется модель по умолчанию (не ломается). Картинки отправляются как превьюсреднего разрешения (~512-768px по длинной стороне) — достаточного, чтобы Claude уверенно распознал содержимое и оценил соответствие сцене. Не слать оригиналы в полном разрешении (лишние токены), но и НЕ уменьшать до потери деталей — приоритет у точности оценки, экономия вторична. Разрешение превью — параметр в настройках. Число кандидатов на кадр — параметр (по умолчанию 5). Управление местом на диске После сборки все промежуточные файлы (скачанные клипы, временные куски) удаляются автоматически — остаётся только готовый MP4. База использованного (список ID клипов) НЕ входит в автоочистку — это маленький текстовый файл, хранится постоянно. Чистятся только тяжёлые медиафайлы, не история использования. Лимит на кэш (параметр, напр. 5 ГБ): при превышении удаляются самые старые файлы. Папки для готовых видео и временных файлов задаю в настройках. Показ занятого места + кнопка «очистить кэш». Технические требования Python. Модульная структура (источники и LLM — сменные модули, чтобы легко заменить/добавить). Все API-ключи вводятся через интерфейс (раздел «Настройки»), хранятся в конфиге, не в коде. Простое окно (GUI — Tkinter/PyQt на выбор), запуск двойным кликом. Вся работа — через интерфейс (кнопки, поля, ползунки), без редактирования кода. README (установка, ключи, запуск), понятные логи, комментарии в коде. Интерфейс (меню и управление) Программа с боковым меню. Разделы: Новое видео — режим «сгенерировать по теме» ИЛИ «вставить свой сценарий» (переключатель), выбор голоса, длины, опции, кнопка «Создать». Во время сборки — экран прогресса по шагам (сценарий → озвучка → подбор кадров → сборка). Мои видео — список готовых роликов. Голоса — список голосов из ElevenLabs. Источники — список всех подключённых архивов: видно добавленные, можно включить/выключить каждый, задать приоритет, идобавить свой новый источник, если есть его API-ключ. Здесь же — ключи источников, где нужна регистрация (Pexels, Pixabay, Europeana). Оверлеи — выбор атмосферного оверлея и прозрачности. Настройки — раздел«API-ключи» (Claude, ElevenLabs и др. в одном месте), выбор моделей Claude, папки, разрешение/формат, лимит кэша. Очистить кэш — освободить место. Все ключи и настройки вводятся через интерфейс, не через файлы/код. Передача результата Весь исходный код в открытом виде (без обфускации) + собранная рабочая версия. Я могу сам запустить из исходников по инструкции. Код чистый и понятный, чтобылюбой другой программист мог продолжить. Все права на код после оплаты — мои. Что даю я API-ключи (Claude, ElevenLabs и источники, где нужна регистрация). Платное оплачиваю сам. Примеры видео-референсов и темы для тестов. Приёмка (готово, если) Запускаю → окно → ввожу тему, выбираю голос → «Создать» → получаю готовый MP4. Видеоряд по смыслу текста, чередование видео/фото, интро-тизер 60 сек, озвучка поверх. Работает минимум с 6 бесплатными источниками, поиск во всех сразу + отбор кандидатов. Подбор кадра: топ-5 кандидатов от кода → выбор лучшего через Claude (для видео — по стоп-кадрам), лимит 3 шага. Порог качества зависит от источника (архивы — не терять плёночны
Ставки приховані
Ставки поки відсутні
Актуальні фриланс-проєкти в категорії Python
Коротко Потрібна програма на Python, яка запускається у мене на ПК (Windows) і робить faceless-відео формату «закадровий голос + змінюваний відеоряд з фото та кліпів» — як історичні документалки на YouTube (приклад прикріплю окремо). Я вводжу тему → програма пише сценарій, озвучує, підбирає під кожен шматок тексту відео/фото з безкоштовних архівів, склеює → видає готовий MP4. Тільки для мене. Без сайту, без користувачів, без продажу. Один користувач — я. Як працює (по кроках) 1. Введення. Відкривається просте вікно. Я вводжу тему ролика і вибираю голос озвучення зі списку (**список голосів підтягується автоматично з ElevenLabs по API** — доступні на моєму акаунті). Натискаю «Створити». (Другий режим: вставити готовий сценарій замість генерації.) 2. Сценарій. Програма через LLM API (OpenAI/Anthropic, ключ в налаштуваннях) пише сценарій за темою, заданої довжини. 3. Розбивка на сцени. LLM ділить сценарій на сцени і для кожної повертає: текст сцени; тип візуалу: відео або фото; пошуковий запит (розгорнута фраза, що повинно бути в кадрі); позначку «highlight» + оцінку важливості 1-10 (для інтро, див. нижче). 4. Озвучення. Текст відправляється в ElevenLabs API обраним голосом → аудіо. Під довжину аудіо кожної сцени обрізається відеоряд. 5. Підбір відео/фото — з безкоштовних джерел по API (див. список нижче). Під кожне джерело запит формується по-своєму (для точності). Якщо в одному не знайшлося — пробує наступний. 6. Перевірка (максимум 3 кроки на сцену). Крок 1: програма бере перший знайдений варіант (відео/фото) за запитом. Крок 2: відправляє кадр в LLM — «підходить під сцену?». Підходить → стоп. Крок 3 (якщо не підходить): програма переключається на пошук фото (по точному запиту фото знайти простіше, ніж відео, — так гарантовано потрапляємо по сенсу) і бере його з посиленим рухом (зум + панорама). Більше 3 кроків на одну сцену не робити — це економить бюджет LLM і гарантує, що кадр в тему. 7. Збірка через ffmpeg/moviepy: кліпи і фото під таймінг озвучення, фото оживляються зумом (ефект Кена Бернса), голос поверх, прості переходи. Вихід: MP4 1920×1080. Правила відеоряду (важливо — за це відповідає програма) Перші 60 секунд — інтро-тизер: нарізка найефектніших кліпів з усього ролика (беруться сцени з вищою оцінкою важливості, де є відео) під окремий текст-вступлення від LLM («в цьому відео ви дізнаєтеся…»), кадри без пояснень, як інтрига. Потім перехід і основна частина. Чередування: відео-вставка мінімум кожні ~6 секунд, не можна багато фото підряд. Доля відео: не менше ~40% часу — живі кліпи, решта — фото з зумом. Довжина кадру: 4-6 секунд (і фото, і відео). Не мельтешити, не тримати статику довго. Для чисто історичних тем, де відео немає — фото з посиленим рухом (зум + панорама). Джерела (всі безкоштовні, з API) Сучасне відео+фото: Pexels, Pixabay. Історичне / архівне (public domain): Wikimedia Commons, Archive.org,Library of Congress, Europeana, NASA, Smithsonian Open Access,Flickr Commons, openverse. Кожне джерело — окремий модуль, легко додати новий. Використовувати тільки public domain / вільні ліцензії з правом комерційного використання. Жодного парсингу чужих YouTube/сайтів, шматків фільмів, картинок «з гугла».Унікальність підбору Щоб відео не співпадали з чужими: брати випадковий кліп з топ-видачі (не перший), вести базу вже використаних (не повторювати), опціонально — легка обробка кліпа (кроп/дзеркало/ швидкість). Опції (вкл/викл в налаштуваннях) Тільки фото — якщо включено, відео збирається ЧИСТО з фото, без відео-кліпів. Кожне фото ОБОВ'ЯЗКОВО з рухом (зум і/або панорама, ефект Кена Бернса) — навіть в цьому режимі не повинно бути статичних «мертвих» кадрів, мінімальна динаміка завжди. Якщо вимкнено — стандартний режим (фото + відео-кліпи з чергуванням, як в правилах відеоряду). Без озвучення — якщо включено, відео збирається по тексту БЕЗ генерації голосу: код НЕ звертається до ElevenLabs і не накладає озвучення (відеоряд підбирається по тексту сцен, таймінг кадрів — по правилам/параметрам, без прив'язки до аудіо). Якщо вимкнено — автоматично робить озвучення по тексту через ElevenLabs, як зазвичай. Атмосферний оверлей — якщо включено, поверх всього відеоряду накладається напівпрозорий шар з плаваючими частинками / пилом / світними боке / легким туманом (particle / dust / bokeh / fog overlay, режим накладення screen/add), щоб кадри виглядали живими і кінематографічними. При установці програми кладеться набір з 5-8 популярних оверлеїв (частинки, пил,copyбоке, туман, легке кінематографічне «зерно») в локальну папку — я вибираю потрібний зі списку. Регульована прозорість/яскравість оверлея (повзунок 0-100%), щоб ефект не був ніcopyзанадто тьмяним, ні занадто вираженим — я сам налаштовую силу. Бажано, щоб оверлей можна було накладати і на ВЖЕ готове відео окремоcopy(постобробка: взяти готовий MP4 → вибрати оверлей → задати прозорість → зберегти), а не тільки при зборці. Звідки взяти оверлеї для комплектації (вільна ліцензія): Pexels, Pixabay (запитиcopy«particle overlay», «bokeh overlay», «dust overlay», «light leaks», «film grain»), Mixkit, Videezy. Виконавець підбирає 5-8 штук і кладе в папку програми. Субтитри (вшити або окремим .srt). Обробка кліпів для унікальності. Роздільна здатність/формат, довжина відео, доля відео, глибина пошуку.Технічні вимоги Python. Модульна структура (джерела і LLM — через змінні модулі, щоб легко замінити або додати). Всі API-ключі — в файлі налаштувань, не в коді. Просте вікно (GUI на вибір виконавця — Tkinter/PyQt), запуск подвійним кліком. README з інструкцією, зрозумілі логи, коментарі в коді.Що даю я API-ключі (ElevenLabs, LLM, де потрібна реєстрація — оформлю). Платне оплачую сам. Приклади відео-референсів (прикріплю) і приклади тем для тестів.Приймання (готово, якщо) Запускаю → вікно → ввожу тему, вибираю голос → «Створити» → отримую готовий MP4. Відеоряд по сенсу тексту, чергування відео/фото, інтро-тизер 60 сек, озвучення поверх. Працює мінімум з 6 безкоштовними джерелами, з fallback між ними. Перевірка кадрів через LLM: макс. 3 кроки на сцену (знайшли → LLM перевірив → якщо немає, фото з рухом як вірняк). Унікальність: рандомізація + база використаного. Тільки легальні джерела. Є README, запускається з нуля.Передача результату Весь вихідний код — в відкритому вигляді (всі файли), без обфускації + зібрана робоча версія. Я можу сам запустити з вихідників за інструкцією (README: установка, ключі, запуск). Код повинен бути чистим, прокоментованим і зрозумілим, щоб **будь-який інший програміст міг продовжити роботу** над ним, якщо знадобиться (не прив'язка до автора). **Вся повсякденна робота — через інтерфейс (кнопки, поля, повзунки, випадаючі списки), БЕЗ необхідності торкатися коду.** Усі налаштування (тема, голос, опції, оверлей, папки, довжина, формати) змінюються у вікні програми, а не редагуванням файлів. Код на руках — тільки як моя власність і страховка, а не як спосіб управління програмою. Усі права на код після оплати — мої.Управління місцем на диску (важливо) Програма не повинна забивати диск. Реалізувати: Після зборки відео всі проміжні файли (завантажені кліпи, тимчасові шматки, аудіо-нарізки) автоматично видаляються — на диску залишається тільки готовий MP4. Ліміт на кеш (параметр в налаштуваннях, напр. 5 ГБ): при перевищенні старі завантажені файли видаляються автоматично (спочатку найстаріші). Папку для готових відео і для тимчасових файлів я задаю в налаштуваннях. Показувати, скільки місця зайнято, і кнопка «очистити кеш» вручну.Прошу вказати в відгуку Приклади схожих робіт (ffmpeg/moviepy, робота зі стоковими/архівними API, ElevenLabs/LLM). Пропозиція по GUI. Використовує чи рішення базу даних (яку і навіщо) — або вистачає локальних файлів. Термін і вартість.
Тренер в реальному часі
Розробляємо real-time інтеграцію з зовнішнім сервісом Тренер. Відправляємо структуровані знімки стану, отримуємо рекомендації і показуємо їх спливаючим вікном. Завдання — стабільна і повна передача даних для коректної роботи Тренера. Шукаємо розробника для ланцюга: обробка даних → HTTP-комунікація → overlay. Потрібні люди з такими навичками Python добре, Java база, API HTTP/JSON-APIs Проект готовий на 90%, але є деякі несоответствия
Необхідно розробити локальний Python-скрипт для автоматичного заповнення Google Таблиці даними з внутрішнього сервісу компанії. Основна логіка: 1. Підключитися до Google Таблиці. 2. Знайти рядки, де заповнений ID, але відсутні два цільових значення. 3. Сформувати посилання за шаблоном: https://internal-service.example/item/{ID} 4. Отримати два значення (через API, якщо він існує, інакше через Playwright). 5. Записати значення назад у Google Таблицю. 6. Позначити рядок як оброблений. 7. Продовжити обробку наступних рядків. Вимоги: • Python • Google Sheets API • Пріоритет використання офіційного API • При відсутності API — Playwright • Без OCR, розпізнавання екрана та координат миші • Конфіденційні дані не повинні потрапляти в логи • Конфігурація через .env • Тестовий режим (без запису в таблицю) • Не обробляти вже заповнені рядки • Пакетна запис змін у Google Sheets • Коректна обробка помилок і повторних спроб Необхідно надати: - вихідний код; - requirements.txt; - приклад .env.example; - інструкцію по установці; - інструкцію по запуску; - короткий опис архітектури. Перед початком реалізації прошу: 1. Запропонувати архітектуру. 2. Перелічити необхідні доступи. 3. Задати уточнюючі питання. 4. Вказати вартість, терміни та орієнтовну кількість годин.
В рамках підвищення рівня кібербезпеки нашої інфраструктури нам необхідно відмовитися від практики зберігання «вічних» і статичних API-ключів, паролів і токенів інтеграцій у конфігураційних файлах (.env, appsettings.json, config.yaml) наших мікросервісів. Бізнес-мета: Створити єдину захищену точку зберігання конфіденційних даних (секретів) з механізмом їх автоматичного оновлення (ротації) у зовнішніх системах за розкладом. Інші наші сервіси будуть запитувати актуальні токени «на льоту» через API, що зведе до мінімуму шкоду в разі компрометації будь-якого з компонентів системи.Модель безпеки та шифрування (Crypto Core) У базі даних жоден секрет не повинен зберігатися в відкритому вигляді. При старті програми в змінні середовища передається Майстер-ключ (Master Key). Якщо ключ відсутній або має невалідну довжину, сервіс повинен падати на етапі ініціалізації з зрозумілою помилкою в логах. Кожен секрет шифрується перед записом у БД з використанням цього Майстер-ключа. При запиті — розшифровується в пам'яті і віддається в тілі відповіді.Аудит-логування (Audit Trail) Будь-яка дія з секретами (створення, читання сервісом, успішна або неуспішна ротація) повинна записуватися в окремий лог-файл audit.log (або окрему таблицю в БД). Суворе табу: В аудит-лог категорично заборонено записувати самі значення секретів (ні в відкритому, ні в зашифрованому вигляді).