Overview
Resource types represent content metadata, videos, streams, and subtitles returned by Stremio addons.MetaItem
Detailed metadata item with full video information.Preview information (flattened into parent)
List of videos associated with this meta item (sorted and deduplicated)
Methods
videos_iter(&self) -> impl DoubleEndedIterator<Item = &Video>
Iterate over videos, filtering out specials (season 0) for series.
videos_by_season(&self, season: u32) -> Vec<&Video>
Get all videos for a specific season.
MetaItemPreview
Preview metadata without full video list (used in catalogs).Unique identifier
Content type (e.g., “movie”, “series”, “channel”)
Display name
Poster image URL
Background image URL
Logo image URL
Description text
Release information (e.g., year)
Runtime information
Release date
Shape of the poster (Square, Landscape, or Poster)
Related links (IMDb, genres, etc.)
Trailer streams
Behavior hints
Video
Represents a single video (episode, movie, etc.).Unique identifier
Video title (also accepts “name” alias)
Release date
Video description
Thumbnail image URL
Available streams (also accepts “stream” alias for single stream)
Series information if this is an episode (flattened)
Trailer streams
Methods
stream(&self) -> Option<Cow<'_, Stream>>
Get the single stream if exactly one exists, or construct YouTube stream from video ID.
SeriesInfo
Series episode information.Season number (0 for specials)
Episode number
Stream
Stream source and metadata.Stream source (flattened)
Stream name/quality indicator
Stream description (also accepts “title” alias)
Stream thumbnail
Embedded subtitles
Behavior hints
Methods
encode(&self) -> Result<String, anyhow::Error>
Encode stream to base64 string.
decode(stream: &str) -> Result<Self, anyhow::Error>
Decode stream from base64 string.
youtube(video_id: &str) -> Option<Self>
Construct YouTube stream from video ID.
is_source_match(&self, other_stream: &Stream) -> bool
Check if two streams have the same source.
is_binge_match(&self, other_stream: &Stream) -> bool
Check if two streams have the same binge group.
convert(&self, streaming_server_url: Option<&Url>) -> Result<Stream<ConvertedStreamSource>, EnvError>
Convert stream source to use streaming server for archives, torrents, etc.
StreamSource
Enum defining various stream sources.Url
Direct URL to video file
YouTube
YouTube video ID
Rar
RAR archive URLs
File index within archive
Filename patterns that must match
Zip
ZIP archive URLs
File index within archive
Filename patterns that must match
Zip7
7-Zip archive URLs
File index within archive
Filename patterns that must match
Tgz
TGZ archive URLs
File index within archive
Filename patterns that must match
Tar
TAR archive URLs
File index within archive
Filename patterns that must match
Nzb
NZB file URL
Usenet server URLs
Torrent
BitTorrent info hash (hex encoded)
File index within torrent
Tracker announce URLs (also accepts “sources” alias)
Filename patterns that must match
PlayerFrame
URL to embed in player frame
External
External URL for general platforms
Android TV specific URL
Samsung Tizen URL
LG webOS URL
ArchiveUrl
URL for archive file with optional size.Archive URL
File size in bytes
[url] or [url, bytes].
StreamBehaviorHints
Hints for stream handling.Stream is not ready for web playback
Group ID for binge watching
Allowed country codes
Headers for proxied requests
Suggested filename
Video content hash
Video file size in bytes
Additional custom hints
Subtitles
Subtitle track information.Subtitle track identifier
Language code
Subtitle file URL
Link
External link for metadata.Link display name
Link category (e.g., “imdb”, “Genres”)
Link URL
MetaItemBehaviorHints
Behavior hints for meta items.Default video to play
Featured video ID
Whether videos are scheduled
Additional custom hints
PosterShape
Enum for poster aspect ratios:Square: 1:1 square ratioLandscape: Wide horizontal formatPoster: Standard vertical poster (default)
