База данных видео для ваших приложений искусственного интеллекта
Изучите документацию »
Посмотреть демо · Сообщить об ошибке · Запросить функцию
VideoDB Python SDK позволяет взаимодействовать с бессерверной базой данных VideoDB. Управляйте видео как интеллектуальными данными, а не файлами. Это масштабируемое, экономичное и оптимизированное решение для приложений искусственного интеллекта и интеграции LLM.
Чтобы установить пакет, выполните в терминале следующую команду:
pip install videodb
Получите ключ API из консоли VideoDB. Бесплатно для первых 50 загрузок (кредитная карта не требуется) .
import videodb
conn = videodb . connect ( api_key = "YOUR_API_KEY" )
Теперь, когда вы установили соединение с VideoDB, вы можете загружать свои видео с помощью conn.upload()
. Вы можете загружать файлы напрямую с youtube
, any public url
, S3 bucket
или local file path
. Коллекция по умолчанию создается при первом подключении.
Метод upload
возвращает объект Video
.
# Upload a video by url
video = conn . upload ( url = "https://www.youtube.com/watch?v=WDv4AWk0J3U" )
# Upload a video from file system
video_f = conn . upload ( file_path = "./my_video.mp4" )
После загрузки ваше видео сразу же становится доступным для просмотра в разрешении 720p. ⚡️
video . generate_stream ()
video . play ()
Вы можете легко вырезать определенные фрагменты видео, передав в качестве параметра временную шкалу временных меток начала и окончания (в секундах). Например, будет сгенерирована и воспроизведена компиляция первых 10 seconds
и клип между 120th
и 140th
секундами.
stream_link = video . generate_stream ( timeline = [[ 0 , 10 ], [ 120 , 140 ]])
play_stream ( stream_link )
Чтобы выполнить поиск по фрагментам внутри видео, вам необходимо сначала index
видео. Это можно сделать простой командой. PS Индексирование более длинных видео может занять некоторое время.
video . index_spoken_words ()
result = video . search ( "Morning Sunlight" )
result . play ()
video . get_transcript ()
Videodb
запускает дополнительные параметры индексирования в следующих версиях. На данный момент вы можете попробовать semantic
индекс - Индекс по произнесенным словам.
В будущем вы сможете индексировать видео, используя:
video.search()
возвращает объект SearchResults
, который содержит разделы или, как мы их называем, shots
видео, которые семантически соответствуют вашему поисковому запросу.
result.get_shots()
Возвращает список снимков, соответствующих поисковому запросу.result.play()
Возвращает воспроизводимый URL-адрес видео (аналогично video.play(); вы можете открыть эту ссылку в браузере или встроить ее на свой веб-сайт с помощью iframe). VideoDB
может легко хранить и осуществлять поиск внутри нескольких видео. По умолчанию видео загружаются в вашу коллекцию по умолчанию.
# Get the default collection
coll = conn . get_collection ()
# Upload Videos to a collection
coll . upload ( url = "https://www.youtube.com/watch?v=lsODSDmY4CY" )
coll . upload ( url = "https://www.youtube.com/watch?v=vZ4kOr38JhY" )
coll . upload ( url = "https://www.youtube.com/watch?v=uak_dXHh6s4" )
conn.get_collection()
: возвращает объект Collection; коллекция по умолчанию.coll.get_videos()
: возвращает список объектов Video; все видео в коллекциях.coll.get_video(video_id)
: Возвращает объект Video, соответствующий видео из предоставленного video_id
.coll.delete_video(video_id)
: удаляет видео из коллекции.Вы можете просто проиндексировать все видео в коллекции и использовать метод поиска, чтобы найти релевантные результаты. Здесь мы индексируем устный контент коллекции и выполняем семантический поиск.
# Index all videos in collection
for video in coll . get_videos ():
video . index_spoken_words ()
# search in the collection of videos
results = coll . search ( query = "What is Dopamine?" )
results . play ()
Результат содержит все совпадающие биты в одном потоке из вашей коллекции. Вы можете сразу использовать эти результаты в своем приложении.
Для видеообъекта доступно несколько методов, которые могут быть полезны для вашего случая использования.
Получить стенограмму
# words with timestamps
text_json = video . get_transcript ()
text = video . get_transcript_text ()
print ( text )
Добавить субтитры к видео
Он мгновенно возвращает новый поток с добавленными к видео субтитрами.
new_stream = video . add_subtitle ()
play_stream ( new_stream )
Получить миниатюру видео:
video.generate_thumbnail()
: возвращает миниатюру видео.
Удалить видео:
video.delete()
: Удаляет видео.
Ознакомьтесь с дополнительными примерами и учебными пособиями Build with VideoDB, чтобы узнать, что можно создать с помощью VideoDB
.
Face
, Scene
, Security
, Events
и Sports
Вклады — это то, что делает сообщество открытого исходного кода таким замечательным местом для обучения, вдохновения и творчества. Мы очень ценим любой ваш вклад.
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)