AI アプリケーション用のビデオ データベース
ドキュメントを確認する »
デモを見る · バグを報告する · 機能をリクエストする
VideoDB Python SDK を使用すると、VideoDB サーバーレス データベースと対話できます。ビデオをファイルではなくインテリジェントなデータとして管理します。スケーラブルでコスト効率が高く、AI アプリケーションと LLM 統合に最適化されています。
パッケージをインストールするには、ターミナルで次のコマンドを実行します。
pip install videodb
VideoDB コンソールから API キーを取得します。最初の 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 を使用して Web サイトに埋め込むこともできます)。 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_id
から対応するビデオである Video オブジェクトを返します。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()
: ビデオを削除します。
さらに多くの例とチュートリアル「VideoDB で構築」をチェックして、 VideoDB
で何を構築できるかを調べてください。
Face
、 Scene
、 Security
、 Events
、 Sports
オープンソース コミュニティは、貢献によって、学び、インスピレーションを与え、創造するための素晴らしい場所になります。皆様の貢献は大変感謝しております。
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)