Skip to main content

AssetDatabase in ShortGPT

The AssetDatabase in ShortGPT is a powerful tool that allows you to manage both local and remote assets. This guide will provide you with examples of how to use the AssetDatabase.

Importing AssetDatabase and AssetType​

from shortGPT.config.asset_db import AssetDatabase, AssetType

Adding Assets​

You can add both remote and local assets to the AssetDatabase.

Adding Remote Assets​

AssetDatabase.add_remote_asset("minecraft background cube", AssetType.BACKGROUND_VIDEO, "https://www.youtube.com/watch?v=Pt5_GSKIWQM")
AssetDatabase.add_remote_asset('chill music', AssetType.BACKGROUND_MUSIC, "https://www.youtube.com/watch?v=uUu1NcSHg2E")

Adding Local Assets​

AssetDatabase.add_local_asset('my_music', AssetType.AUDIO, "./my_music.wav")

Asset Types​

The AssetType enum is used to specify the type of asset being added to the AssetDatabase. The available asset types are:

  • VIDEO
  • AUDIO
  • IMAGE
  • BACKGROUND_MUSIC
  • BACKGROUND_VIDEO
  • OTHER

Getting Asset Information​

You can retrieve information about an asset using the following methods:

Get Asset Duration​

This method returns the duration in seconds of a video or audio asset. If the asset is neither video nor audio, it returns None.

AssetDatabase.get_asset_duration('minecraft background cube')

This method returns a source URL, or the path of the resource. If the asset is a YouTube video or audio, it uses yt-dlp to extract a download URL or a direct video/audio link.

AssetDatabase.get_asset_link('minecraft background cube')

Synchronizing Local Assets​

The sync_local_assets method synchronizes the database with local assets found in the /public folder. If it doesn't find one, it doesn't do anything.

AssetDatabase.sync_local_assets()

Removing Assets​

You can remove an asset from the database by providing its name to the remove_asset method.

AssetDatabase.remove_asset('name')

Getting Database State​

You can get the state of the asset database as a pandas dataframe using the get_df method.

AssetDatabase.get_df()

This method returns a dataframe that includes the name, type, link, source, and timestamp of each asset in the database.