Titan OS supports integrated content discovery through partner catalogue feeds. This feature allows users to explore a broad range of movies, series, and sports content directly within the platform—via universal search and personalized recommendations. By surfacing content from multiple providers in a unified, intuitive interface, Titan OS helps users find what they love faster.

As an app provider, you can contribute to this experience by sharing your catalogue feed enriched with high-quality metadata. Your data powers search results and recommendation rows, and is intelligently aggregated and deduplicated to ensure a consistent, up-to-date presentation. The more complete and accurate your feed, the more discoverable and engaging your content becomes.

Key Use Cases for Metadata Integration

By integrating your metadata into Titan OS, you can enhance visibility and engagement through two primary features:

Integrate your full content catalogue to be included in Titan OS’s global search experience. This allows users to discover your titles through both intent-driven searches (e.g., specific movie names) and casual browsing. Results are deep-linked directly into your app, ensuring a seamless user journey from search to playback. The more detailed and accurate your metadata (e.g., title, genre, cast, imagery), the more relevant and prominent your content will appear.

Search promptedSearch prompted

Highlight key content in a dedicated row on the Titan OS start page. This feature is especially powerful when your app is marked as a user favorite, as it brings your recommendations front and center—without requiring users to open your app.

You can power this row in several flexible ways:

  • Provide a separate feed or endpoint with curated highlighted content
  • Flag a specific list within your full catalogue
  • Allow Titan OS to automatically select content (e.g., newest additions, trending titles)

Example use cases include showcasing:

  • New releases
  • Top-performing titles
  • Seasonal or promotional highlights

Well-structured metadata ensures the right titles are shown to the right users, boosting discoverability and engagement.

How Metadata is Used Within the Titan OS UI

Metadata will be used in search to optimize discovery of content and make searches more accurate.

Prompted

When a user knows what they are looking for, metadata ensures accurate results that link directly to your app.

Unprompted

When a user is browsing for content, metadata helps surface relevant titles from your catalogue for better discovery.

Recommendations

The “Recommended for you” row on Titan OS uses your metadata to provide personalized suggestions, enhancing content engagement.

See the section below for details on how to structure and deliver this feed. Metadata Integration | Recommendation Feed

Content Aggregation

In cases where multiple providers offer the same content, metadata helps aggregate options, allowing users to choose from all available sources.

Content Feed Structure and Metadata Requirements

Our goal is to keep the integration process as straightforward and flexible as possible, while maintaining consistency and performance across all content feeds. To ensure a smooth and efficient integration, we kindly ask you to provide your metadata feed in a format and structure that supports reliable processing on both sides.

Mandatory Fields

Field NameValueDescription
idInteger (e.g. 12345)ID of the asset
created_atISO 8601 (e.g. “2025-05-19T14:23:00Z”)UTC timestamp indicating the last time this item was created
updated_atISO 8601 (e.g. “2025-05-19T14:23:00Z”)UTC timestamp indicating the last time this item was modified
original_titleString (e.g. “Inception”)Official/original title of the content
yearInteger (e.g. 2010)Year of release
durationInteger (seconds) (e.g. 8880)Total runtime in seconds
typeEnum: “movie”, “tv_show”, “season”, “episode”, “sport_program”Type of content
seasonsInteger (optional)Empty or contains season metadata if type = TV show
episodesInteger (optional)Empty or contains episode metadata if type = TV show
titlesArray of { locale: string, title: string }Localized titles per language
synopsesArray of { locale: string, synopsis: string }Localized short synopsis (≤ 200 characters)
deeplinkingsArray of { market: string, device_type: "TV", url: string }Deep links for launching TV content in partner apps
availabilitiesArray of objectsAvailability of content per country/business model
availabilities[].marketArray of ISO 3166 country code (e.g. “US”)Target markets
availabilities[].business_modelEnum: “AVOD”, “HVOD”, “RVOD”, “TVOD”, “SVOD”, “EST”AVOD (free ad-supported), HVOD (subscription + ads), etc.
availabilities[].video_qualityEnum: “SD”, “HD”, “UHD”Supported video resolutions
artwork_landscapeArray of { locale: string, url: string }Mandatory horizontal artwork with title treatment (≥ 960x540, 16:9)
screenshot_landscapeArray of { locale: string, url: string }Horizontal screenshot without TT (≥ 1920x1080, desired 4K, 16:9)
genresArray of EnumMust match predefined list (Action, Drama, etc.)
classificationsArray of { country: string, minimum_age: integer, system: string }Age restrictions per country
external_idArray of { type: "eidr" | "imdb" | "tmdb", id: string }External content identifier, if applicable

Optional Fields

Field NameValue & FormatDescription
transparent_logo{ locale: string, url: string }Optional logo with transparent background (≥ 400px, ideal ≥ 640px)
actorsArray of { name: string }Optional cast data
directorsArray of { name: string }Optional director data
screenshot_portraitArray of { locale: string, url: string, width: integer }Optional portrait screenshot (≥ 400px, ideal ≥ 800px)
artwork_portraitArray of { locale: string, url: string, width: integer }Optional vertical poster/artwork (≥ 640px, ideal ≥ 960px)
trailersArray of { locale: string, url: string }Optional trailer links per locale

Feed Delivery

Initial Metadata Import (Full Catalogue Ingestion)

For the initial metadata import, we recommend using NDJSON (Newline-Delimited JSON) format.

NDJSON is well-suited for large datasets, as it supports efficient line-by-line processing with low memory usage. It also allows for faster imports, simpler error handling, and better integration with our existing data pipeline and tools.

If NDJSON is not available, we can also work with flat JSON or CSV formats, though with some limitations in processing efficiency.

Recommendation Feed

The recommendation feed is an optional feature that allows content partners to highlight selected titles in a dedicated recommendation row on the Titan OS interface. This is a valuable opportunity to promote specific content based on editorial priorities, seasonal relevance, or commercial focus.

To enable this feature, the feed should include:

  • A unique content ID (matching the metadata feed)
  • A priority or ranking (optional, for display order)
  • A title and locale

If no recommendation feed is provided by the partner, Titan OS can create a feed based on the most recently added contents of the catalogue feed.

Feed Updates

Titan OS updates metadata feeds every 24 hours. To reduce load on both your systems and ours, we kindly ask you to structure the feed in a way that makes it easy to identify only the necessary additions, updates, or deletions. This helps ensure efficient processing and avoids unnecessary re-imports of unchanged data.

Ideally, the feed includes a reliable last_updated timestamp or supports delta-based delivery (e.g. updated_since), so that we can process only the changes since the last sync.

Update TypeHow to Handle
✅ New itemsFeed should include created_at or id ordering
🔄 Changed itemsUse updated_at timestamps or versioning/hash to detect changes
❌ Deleted itemsFeed should include a “tombstone” list (e.g. { id, deleted: true }) or list of valid IDs

Access and Security Configuration

We are happy to integrate with any access point you provide, including URLs or APIs. Please feel free to choose the method that works best for you. If security measures such as password protection, API keys, or IP whitelisting are required, we kindly ask you to configure them on your side and share the necessary details with us.