Skip to content

Design generic models #1419

@tcely

Description

@tcely

As part of expanding site support; we should design an architecture that allows us to best describe streams / downloads, and their audio / video / thumbnail / subtitle assets.

Video and thumbnail assets are usually a single entry for each media key. We probably won't need to support multiple versions of these.

Audio is often presented as multiple formats and we can technically download as many as the file container supports. This lets us create a final file that has a translation audio track, and both original audio and default audio tracks available during playback.

Subtitles are likewise offered in multiple languages and it could be useful to download many of these. We also need to be concerned if they should be embedded or kept external alongside the final video file. Possibly in a dedicated subdirectory with names that partially match the final video file.

YouTube, as an example, has playlists and either streams or videos. The different types of playlists used have various URL templates. Once you have a key for the stream / video / playlist, these can be inserted into the proper template for the asset type that is desired.

Other sites may operate differently, but we expect most will have a unique identifier for each stream / video / playlist.

An additional complication will be format selection. I think a list of profiles that can be reused makes the most sense here.
We should compose these profiles from smaller pieces that can also be reused.


Asset types:

  • video
  • audio
  • subtitle
  • thumbnail

Codec:

  • supported asset type
  • codec name

Subtitle:

  • language
  • original language
  • extension
  • codec
  • machine generated

Thumbnail:

  • extension
  • codec
  • height
    • min
    • max
    • convert(ed) to
  • width
    • min
    • max
    • convert(ed) to
  • orientation
    • portrait
    • landscape
  • resized

Container:

  • extension
  • supported asset type
  • number of type supported
  • supported codec

Audio:

  • language
  • default
  • original
  • bit rate
  • frequency
  • range compression
  • extension
  • codec
  • machine generated

Video:

  • Frames per second
    • min
    • max
  • Codec preference
    • acceptable codecs
    • ordering priority
  • Resolution
    • min
    • max
  • Dynamic Range
    • min
    • max
  • Upscaled
    • accept
    • deny
  • Pre-combined video & audio
    • deny
    • accept & deconstruct
    • accept & preserve

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions