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
- width
- orientation
- 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
- Codec preference
- acceptable codecs
- ordering priority
- Resolution
- Dynamic Range
- Upscaled
- Pre-combined video & audio
- deny
- accept & deconstruct
- accept & preserve
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:
Codec:
Subtitle:
Thumbnail:
Container:
Audio:
Video: