Skip to content

Media RSS Namespace Reference

The Media RSS namespace provides rich media metadata for RSS feeds, enabling comprehensive description of multimedia content including videos, images, and audio files.

Namespace URIhttp://search.yahoo.com/mrss/
SpecificationMedia RSS Specification
Prefix<media:*>
Available inRSS, Atom, RDF
Propertymedia

Types

ts
export namespace MediaNs {
  export type Rating = {
    value: string
    scheme?: string
  }

  export type TitleOrDescription = {
    value: string
    type?: string
  }

  export type Thumbnail = {
    url: string
    height?: number
    width?: number
    time?: string
  }

  export type Category = {
    name: string
    scheme?: string
    label?: string
  }

  export type Hash = {
    value: string
    algo?: string
  }

  export type Player = {
    url: string
    height?: number
    width?: number
  }

  export type Credit = {
    value: string
    role?: string
    scheme?: string
  }

  export type Copyright = {
    value: string
    url?: string
  }

  export type Text = {
    value: string
    type?: string
    lang?: string
    start?: string
    end?: string
  }

  export type Restriction = {
    value: string
    relationship: string
    type?: string
  }

  export type Community = {
    starRating?: StarRating
    statistics?: Statistics
    tags?: Array<Tag>
  }

  export type StarRating = {
    average?: number
    count?: number
    min?: number
    max?: number
  }

  export type Statistics = {
    views?: number
    favorites?: number
  }

  export type Tag = {
    name: string
    weight?: number
  }

  export type Embed = {
    url: string
    width?: number
    height?: number
    params?: Array<Param>
  }

  export type Param = {
    name: string
    value: string
  }

  export type Status = {
    state: string
    reason?: string
  }

  export type Price = {
    type?: string
    info?: string
    price?: number
    currency?: string
  }

  export type License = {
    name?: string
    type?: string
    href?: string
  } & ({ name: string } | { href: string })

  export type SubTitle = {
    type?: string
    lang?: string
    href: string
  }

  export type PeerLink = {
    type?: string
    href: string
  }

  export type Rights = {
    status?: string
  }

  export type Scene = {
    title?: string
    description?: string
    startTime?: string
    endTime?: string
  }

  export type Location = {
    description?: string
    start?: string
    end?: string
    lat?: number
    lng?: number
  }

  /** @internal Shared elements available across Content, Group, ItemOrFeed types. */
  export type CommonElements = {
    ratings?: Array<Rating>
    title?: TitleOrDescription
    description?: TitleOrDescription
    keywords?: Array<string>
    thumbnails?: Array<Thumbnail>
    categories?: Array<Category>
    hashes?: Array<Hash>
    player?: Player
    credits?: Array<Credit>
    copyright?: Copyright
    texts?: Array<Text>
    restrictions?: Array<Restriction>
    community?: Community
    comments?: Array<string>
    embed?: Embed
    responses?: Array<string>
    backLinks?: Array<string>
    status?: Status
    prices?: Array<Price>
    licenses?: Array<License>
    subTitles?: Array<SubTitle>
    peerLinks?: Array<PeerLink>
    locations?: Array<Location>
    rights?: Rights
    scenes?: Array<Scene>
  }

  export type Content = {
    url?: string
    fileSize?: number
    type?: string
    medium?: string
    isDefault?: boolean
    expression?: string
    bitrate?: number
    framerate?: number
    samplingrate?: number
    channels?: number
    duration?: number
    height?: number
    width?: number
    lang?: string
  } & CommonElements

  export type Group = {
    contents?: Array<Content>
  } & CommonElements

  export type ItemOrFeed = {
    groups?: Array<Group>
    contents?: Array<Content>

    /** @deprecated Use `groups` (array) instead. Multiple media:group elements are allowed per specification. */
    group?: Group
  } & CommonElements
}