
Semantic Semantic Playlist Playlist на YouTube с открытым мощным
Я люблю все-в-в-подкаст. Но поиск и открытие с подкастами могут быть действительно сложными.
Я построил этот проект, чтобы решить эту проблему ... и я также хотел поиграть с прохладным ИИ. ?
В этом проекте используются последние модели от Openai для создания семантического индекса поиска в каждом эпизоде POD. Это позволяет вам найти ваши любимые моменты с точностью на уровне Google и пересмотреть точные клипы, которые вас интересуют.
Вы можете использовать его для Power Advanced Search на любом канале YouTube или списке воспроизведения . Демонстрация использует All-In Podcast, потому что он мой любимый?, Но он предназначен для работы с любым плейлистом.
npm install , чтобы установить все необходимые зависимости.npx tsx src/bin/resolve-yt-playlist.ts , чтобы загрузить английские транскрипты для каждого эпизода Target Playlist (в данном случае плейлист All-In Podcast Episodes).npx tsx src/bin/process-yt-playlist.ts чтобы предварительно обрабатывать транскрипты и принести внедрения из OpenAI, затем вставьте их в индекс поиска Pinecone.npx tsx src/bin/query.ts чтобы запросить индекс поиска Pinecone. (Необязательно) Запустите команду npx tsx src/bin/generate-thumbnails.ts . Этот шаг занимает ~ 2 часа и требует стабильного интернет -соединения.Обратите внимание, что несколько эпизодов могут не иметь автоматизированных английских транскрипций, и что для этого в проекте используется хакерское решение для скребки HTML, поэтому лучшим решением будет использование Whisper для расшифровки звука эпизода. Кроме того, сортировка поддержки проекта с помощью резистентности против актуальности.


Под капотом он использует:
Мы используем Node.js и YouTube API V3, чтобы получить видео нашего целевого плейлиста. В этом случае мы сосредоточены на воспроизведенном плейлисте Podcast Playlist, который содержит 108 видео на момент написания.
npx tsx src/bin/resolve-yt-playlist.tsМы загружаем английские транскрипты для каждого эпизода, используя хакерское решение для соскоба HTML, поскольку API YouTube не позволяет не доступа к подразделениям. Обратите внимание, что в нескольких эпизодах не доступны автоматизированные английские транскрипции, поэтому мы просто пропускаем их сейчас. Лучшим решением было бы использовать Whisper для транскрибирования звука каждого эпизода.
После того, как у нас будут загружены все транскрипты и метаданные локально, мы предварительно обрабатываем каждый видео-стенограммы, разбивая их на куски разумного размера из ~ 100 токенов и получаем встроение текста-эмбедидинга-002 из Openai. Это приводит к ~ 200 встраиванию за эпизод.
Все эти встраивания затем поднимаются в индекс поиска Pinecone с размерностью 1536 года. В общей сложности ~ 17 575 вторжений на ~ 108 эпизодах подкаста.
npx tsx src/bin/process-yt-playlist.tsПосле того, как наш индекс поиска PineCone будет настроен, мы можем начать запросить его либо через веб -приложение, либо через пример CLI:
npx tsx src/bin/query.tsМы также поддерживаем генерацию миниатюр на основе временных метков каждого видео на YouTube в списке воспроизведения. Миниатюры генерируются с использованием кукловода без головы и загружаются в Google Cloud Storage. Мы также после обработки каждой миниатюры с LQIP-модерн для генерации хорошего предварительного просмотра изображений.
Если вы хотите генерировать миниатюры (необязательно), запустите:
npx tsx src/bin/generate-thumbnails.tsОбратите внимание, что генерация миниатюры занимает ~ 2 часа и требует довольно стабильного подключения к Интернету.
Frontend - это Next.js WebApp, развернутый в Vercel, который использует наш индекс Pinecone в качестве основного хранилища данных.
Есть идея о том, как можно улучшить этот веб -приложение? Найти особенно забавный поисковый запрос?
Не стесняйтесь присылать мне отзывы, либо на GitHub, либо в Twitter. ?
MIT © Трэвис Фишер
Если вы нашли этот проект интересным, пожалуйста, подумайте о том, чтобы спонсировать меня или следить за мной в Twitter
Затраты API и сервера со временем увеличиваются, поэтому, если вы можете сэкономить, спонсирование на GitHub высоко ценится. ?