Base de données vidéo pour vos applications d'IA
Explorer les documents »
Voir la démo · Signaler un bug · Demander une fonctionnalité
Le SDK Python VideoDB vous permet d'interagir avec la base de données sans serveur VideoDB. Gérez les vidéos comme des données intelligentes et non comme des fichiers. Il est évolutif, rentable et optimisé pour les applications d'IA et l'intégration LLM.
Pour installer le package, exécutez la commande suivante dans votre terminal :
pip install videodb
Obtenez une clé API depuis la console VideoDB. Gratuit pour les 50 premiers téléchargements (Aucune carte de crédit requise) .
import videodb
conn = videodb . connect ( api_key = "YOUR_API_KEY" )
Maintenant que vous avez établi une connexion à VideoDB, vous pouvez télécharger vos vidéos à l'aide de conn.upload()
. Vous pouvez télécharger directement depuis youtube
, any public url
, S3 bucket
ou un local file path
. Une collection par défaut est créée lorsque vous créez votre première connexion.
La méthode upload
renvoie un objet 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" )
Une fois téléchargée, votre vidéo est immédiatement disponible pour être visionnée en résolution 720p. ⚡️
video . generate_stream ()
video . play ()
Vous pouvez facilement découper des sections spécifiques d'une vidéo en passant une chronologie des horodatages de début et de fin (en secondes) comme paramètre. Par exemple, cela générera et lira une compilation des 10 seconds
et le clip entre la 120th
et la 140th
seconde.
stream_link = video . generate_stream ( timeline = [[ 0 , 10 ], [ 120 , 140 ]])
play_stream ( stream_link )
Pour rechercher des éléments dans une vidéo, vous devez d’abord index
la vidéo. Cela peut être fait par une simple commande. L'indexation PS peut prendre un certain temps pour les vidéos plus longues.
video . index_spoken_words ()
result = video . search ( "Morning Sunlight" )
result . play ()
video . get_transcript ()
Videodb
lance davantage d'options d'indexation dans les versions à venir. Vous pouvez dès maintenant essayer l'index semantic
- Index par mots prononcés.
À l'avenir, vous pourrez indexer des vidéos en utilisant :
video.search()
renvoie un objet SearchResults
, qui contient les sections ou, comme nous les appelons, shots
de vidéos qui correspondent sémantiquement à votre requête de recherche.
result.get_shots()
Renvoie une liste de plans correspondant à la requête de recherche.result.play()
Renvoie une URL lisible pour la vidéo (similaire à video.play(); vous pouvez ouvrir ce lien dans le navigateur ou l'intégrer dans votre site Web à l'aide d'une iframe). VideoDB
peut facilement stocker et rechercher dans plusieurs vidéos. Par défaut, les vidéos sont téléchargées dans votre collection par défaut.
# 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()
: renvoie un objet Collection ; la collection par défaut.coll.get_videos()
: renvoie une liste d'objets vidéo ; toutes les vidéos des collections.coll.get_video(video_id)
: renvoie un objet Video, vidéo correspondante à partir du video_id
fourni.coll.delete_video(video_id)
: Supprime la vidéo de la Collection.Vous pouvez simplement indexer toutes les vidéos d'une collection et utiliser la méthode de recherche pour trouver des résultats pertinents. Ici, nous indexons le contenu parlé d'une collection et effectuons une recherche sémantique.
# 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 ()
Le résultat ici contient tous les bits correspondants dans un seul flux de votre collection. Vous pouvez utiliser ces résultats immédiatement dans votre application.
Il existe plusieurs méthodes disponibles sur un objet vidéo, qui peuvent être utiles pour votre cas d'utilisation.
Obtenez la transcription
# words with timestamps
text_json = video . get_transcript ()
text = video . get_transcript_text ()
print ( text )
Ajouter des sous-titres à une vidéo
Il renvoie instantanément un nouveau flux avec des sous-titres ajoutés à la vidéo.
new_stream = video . add_subtitle ()
play_stream ( new_stream )
Obtenir la vignette d'une vidéo :
video.generate_thumbnail()
: renvoie une image miniature de la vidéo.
Supprimer une vidéo :
video.delete()
: Supprime la vidéo.
Découvrez plus d'exemples et de didacticiels Construire avec VideoDB pour explorer ce que vous pouvez créer avec VideoDB
.
Face
, Scene
, Security
, Events
et Sports
Les contributions sont ce qui fait de la communauté open source un endroit si formidable pour apprendre, inspirer et créer. Toutes les contributions que vous apportez sont grandement appréciées .
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)