Skip to main content

llama-index readers kaltura e-search integration

Project description

Kaltura eSearch Loader

pip install llama-index-readers-kaltura-esearch

This loader reads Kaltura Entries from Kaltura based on a Kaltura eSearch API call. Search queries can be passed as a pre-defined object of KalturaESearchEntryParams, or through a simple free text query. The result is a list of documents containing the Kaltura Entries and Captions json.

Parameters

KalturaESearchEntryParams

This is a Kaltura class used for performing search operations in Kaltura. You can use this class to define various search criteria, such as search phrases, operators, and objects to be searched.

For example, you can search for entries with specific tags, created within a specific time frame, or containing specific metadata.

Kaltura Configuration

To use the Kaltura eSearch Loader, you need to provide the following configuration credentials:

Parameter Description Default Value
partnerId Your Kaltura partner ID. Mandatory (no default)
apiSecret Your Kaltura API secret key (aka Admin Secret). Mandatory (no default)
userId Your Kaltura user ID. Mandatory (no default)
ksType The Kaltura session type. KalturaSessionType.ADMIN
ksExpiry The Kaltura session expiry time. 86400 seconds
ksPrivileges The Kaltura session privileges. "disableentitlement"
kalturaApiEndpoint The Kaltura API endpoint URL. "https://cdnapi-ev.kaltura.com/"
requestTimeout The request timeout duration in seconds. 500 seconds
shouldLogApiCalls If passed True, all the Kaltura API calls will also be printed to log (only use during debug). False

load_data

This method run the search in Kaltura and load Kaltura entries in a list of dictionaries.

Method inputs

  • search_params: search parameters of type KalturaESearchEntryParams with pre-set search queries. If not provided, the other parameters will be used to construct the search query.
  • search_operator_and: if True, the constructed search query will have AND operator between query filters, if False, the operator will be OR.
  • free_text: if provided, will be used as the free text query of the search in Kaltura.
  • category_ids: if provided, will only search for entries that are found inside these category ids.
  • withCaptions: determines whether or not to also download captions/transcript contents from Kaltura.
  • maxEntries: sets the maximum number of entries to pull from Kaltura, between 0 to 500 (max pageSize in Kaltura).

Method output

Each dictionary in the response represents a Kaltura media entry, where the keys are strings (field names) and the values can be of any type:

Column Name Data Type Description
entry_id str Unique identifier of the entry
entry_name str Name of the entry
entry_description str Description of the entry
entry_captions JSON Captions of the entry
entry_media_type int Type of the media (KalturaMediaType)
entry_media_date int Date of the media Unix timestamp
entry_ms_duration int Duration of the entry in ms
entry_last_played_at int Last played date of the entry Unix timestamp
entry_application str The app that created this entry (KalturaEntryApplication)
entry_tags str Tags of the entry (comma separated)
entry_reference_id str Reference ID of the entry

Usage

First, instantiate the KalturaReader (aka Kaltura Loader) with your Kaltura configuration credentials:

from llama_index.readers.kaltura_esearch import KalturaESearchReader

loader = KalturaESearchReader(
    partnerId="INSERT_YOUR_PARTNER_ID",
    apiSecret="INSERT_YOUR_ADMIN_SECRET",
    userId="INSERT_YOUR_USER_ID",
)

Using an instance of KalturaESearchEntryParams

Then, create an instance of KalturaESearchEntryParams and set your desired search parameters:

from KalturaClient.Plugins.ElasticSearch import (
    KalturaESearchEntryParams,
    KalturaESearchEntryOperator,
    KalturaESearchOperatorType,
    KalturaESearchUnifiedItem,
)

# instantiate the params object
search_params = KalturaESearchEntryParams()

# define search parameters (for example, search for entries with a certain tag)
search_params.searchOperator = KalturaESearchEntryOperator()
search_params.searchOperator.operator = KalturaESearchOperatorType.AND_OP
search_params.searchOperator.searchItems = [KalturaESearchUnifiedItem()]
search_params.searchOperator.searchItems[0].searchTerm = "my_tag"

Once you have your KalturaESearchEntryParams ready, you can pass it to the Kaltura Loader:

# Using search params
entry_docs = loader.load_data(search_params)

Using Free Text Search

# Simple pass the search params into the load_data method without setting search_params
entry_docs = loader.load_data(
    search_operator_and=True,
    free_text="education",
    category_ids=None,
    with_captions=True,
    max_entries=5,
)

For a more elaborate example, see: llamaindex_kaltura_esearch_reader_example.py

This loader is designed to be used as a way to load data into LlamaIndex.

About Kaltura

Kaltura Video Cloud is a Digital Experience Platform enabling streamlined creation, management, and distribution of media content (video, audio, image, doc, live stream, real-time video). It powers many applications across industries with collaboration, interactivity, virtual events, and deep video analytics capabilities.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llama_index_readers_kaltura_esearch-0.5.0.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file llama_index_readers_kaltura_esearch-0.5.0.tar.gz.

File metadata

  • Download URL: llama_index_readers_kaltura_esearch-0.5.0.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for llama_index_readers_kaltura_esearch-0.5.0.tar.gz
Algorithm Hash digest
SHA256 45869904f4013f64de56e40407ddb1ba0348023dd2412b63059bfe017707322b
MD5 4e09f3f0490f6119d16219a8568a604a
BLAKE2b-256 e01dcde594bffbf2a96eaff71783256e7490415242a0e111d73b2be4db92d0ba

See more details on using hashes here.

File details

Details for the file llama_index_readers_kaltura_esearch-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: llama_index_readers_kaltura_esearch-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for llama_index_readers_kaltura_esearch-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 51c8e2c0da59da8b112d123141cc9021209d3fa40bff6a4d408cab96c28b41e7
MD5 fc27f3769675edf02b6afde463bee560
BLAKE2b-256 c33c1b30cdc5ee055651bdfc2c1536df032f19f96364c82d806a8111b30d0c97

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page