All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.shubert.yt.YouTubeConstants.scala Maven / Gradle / Ivy

The newest version!
package ru.shubert.yt

/**
  * Helper object, describes exact tag meaning. Might be useful in rendering download choices or describing stream
  * to external system. Latter case could require json representation.
  *
  * Tags are specified in YouTube links and leans the exact codec and type of the stream. For example, there could be
  * video only and audio only streams, low or high resolution streams and different codec like ogg, mp4, flw and so on.
  *
  * @see http://www.genyoutube.net/formats-resolution-youtube-videos.html
  */
object YouTubeConstants {

  case class StreamInfo(itag: Int, short: String, tech: String)

  val StreamTypes: Map[Int, StreamInfo] = Map[Int, StreamInfo](
    5 → StreamInfo(5, "240p flv", "type=video/x-flv"),
    17 → StreamInfo(17, "114p mpeg 3gpp", "type=video/3gpp;codecs=mp4v.20.3,+mp4a.40.2"),
    18 → StreamInfo(18, "360p mpeg", "type=video/mp4;codecs=avc1.42001E,+mp4a.40.2"),
    22 → StreamInfo(22, "720p mpeg", "type=video/mp4;codecs=avc1.64001F,+mp4a.40.2"),
    34 → StreamInfo(34, "360p flv", "type=video/x-flv"),
    35 → StreamInfo(35, "480p flv", "type=video/x-flv"),
    36 → StreamInfo(36, "240p mpeg 3gpp", "type=video/3gpp;codecs=mp4v.20.3,+mp4a.40.2"),
    37 → StreamInfo(37, "1080p mpeg", "type=video/mp4;codecs=avc1.64001F,+mp4a.40.2"),
    43 → StreamInfo(43, "360p webm", "type=video/webm;codecs=vp8.0,+vorbis"),
    44 → StreamInfo(44, "480p webm", "type=video/webm;codecs=vp8.0,+vorbis"),
    45 → StreamInfo(45, "720p webm", "type=video/webm;codecs=vp8.0,+vorbis"),
    46 → StreamInfo(46, "1080p webm", "type=video/webm;codecs=vp8.0,+vorbis"),
    82 → StreamInfo(82, "360p 3d mpeg", "type=video/mp4;codecs=avc1.42001E,+mp4a.40.2"),
    84 → StreamInfo(84, "1080p 3d mpeg", "type=video/mp4;codecs=avc1.64001F,+mp4a.40.2"),
    100 → StreamInfo(100, "1080p 3d webm", "type=video/webm;codecs=vp8.0,+vorbis"),
    102 → StreamInfo(102, "360p 3d webm", "type=video/webm;codecs=vp8.0,+vorbis"),
    133 → StreamInfo(133, "240p mpeg", "type=video/mp4;codecs=avc1.4d4015;size=426x240"),
    134 → StreamInfo(134, "360p mpeg", "type=video/mp4;codecs=avc1.4d401e;size=640x360"),
    135 → StreamInfo(135, "480p mpeg", "type=video/mp4;codecs=avc1.4d401f;size=854x480"),
    136 → StreamInfo(136, "720p mpeg", "type=video/mp4;codecs=avc1.4d401f;size=1280x720"),
    137 → StreamInfo(137, "1080p mpeg", "type=video/mp4;codecs=avc1.640028;size=1920x1080"),
    138 → StreamInfo(138, "2304p mpeg", "type=video/mp4;codecs=avc1.640033;size=4096x2304"),
    140 → StreamInfo(140, "mpeg audio only", "type=audio/mp4;codecs=mp4a.40.2;bitrate=127949"),
    160 → StreamInfo(160, "144p mpeg", "type=video/mp4;codecs=avc1.42c00c;size=256x144"),
    171 → StreamInfo(171, "ogg vorbis audio only", "audio/webm;codecs=vorbis;bitrate=127949"),
    172 → StreamInfo(171, "ogg vorbis audio only", "audio/webm;codecs=vorbis;bitrate=127949"),
    242 → StreamInfo(242, "240p webm", "type=video/webm;codecs=vp9"),
    243 → StreamInfo(243, "360p webm", "type=video/webm;codecs=vp9"),
    244 → StreamInfo(244, "480p webm", "type=video/webm;codecs=vp9;size=854x480"),
    247 → StreamInfo(247, "720p mpeg", "type=video/webm;codecs=vp9;size=1280x720"),
    248 → StreamInfo(248, "1080p mpeg", "type=video/webm;codecs=vp9;size=1920x1080"),
    249 → StreamInfo(249, "webm audio only", "type=audio/webm;codecs=opus;bitrate=53372"),
    250 → StreamInfo(250, "webm audio only", "type=audio/webm; codecs=opus;bitrate=70588"),
    251 → StreamInfo(251, "webm audio only", "type=audio/webm; codecs=opus;bitrate=135398"),
    264 → StreamInfo(264, "1440p mpeg", "type=video/mp4;codecs=avc1.640032;size=2560x1440"),
    266 → StreamInfo(266, "2160p mpeg", "type=video/mp4;codecs=avc1.640033;size=3840x2160"),
    271 → StreamInfo(271, "1440p webm", "type=video/webm;codecs=vp9;size=2560x1440"),
    272 → StreamInfo(272, "2160p webm", "type=video/webm;codecs=vp9;size=3840x2160"),
    278 → StreamInfo(278, "144p webm", "type=video/webm;codecs=vp9;size=256x144"),
    298 → StreamInfo(278, "720p mpeg", "type=video/mp4;codecs=avc1.4d4020;size=1280x720"),
    299 → StreamInfo(278, "1080p mpeg", "type=video/mp4;codecs=avc1.4d4020;size=1920x1080"),
    302 → StreamInfo(302, "720p webm", "type=video/webm;codecs=vp9;size=1280x720"),
    303 → StreamInfo(303, "1080p webm", "type=video/webm;codecs=vp9;size=1920x1080"),
    308 → StreamInfo(308, "1440p webm", "type=video/webm;codecs=vp9;size=2560x1440"),
    313 → StreamInfo(313, "2160p webm", "type=video/webm;codecs=vp9;size=3840x2160"),
    315 → StreamInfo(315, "2160p webm", "type=video/webm;codecs=vp9;size=3840x2160"),
    330 → StreamInfo(330, "144p webm", "type=video/webm;codecs=vp9.2;size=256x144"),
    331 → StreamInfo(331, "240p webm", "type=video/webm;codecs=vp9.2;size=426x240"),
    332 → StreamInfo(332, "360p webm", "type=video/webm;codecs=vp9.2;size=640x360"),
    333 → StreamInfo(333, "480p webm", "type=video/webm;codecs=vp9.2;size=854x480"),
    334 → StreamInfo(334, "720p webm", "type=video/webm;codecs=vp9.2;size=1280x720"),
    335 → StreamInfo(335, "1080p webm", "type=video/webm;codecs=vp9.2;size=1920x1080"),
    336 → StreamInfo(336, "1440p webm", "type=video/webm;codecs=vp9.2;size=2560x1440"),
    337 → StreamInfo(337, "2160p webm", "type=video/webm;codecs=vp9.2;size=3840x2160")
  ).withDefaultValue(StreamInfo(0, "unknown", "unknown"))
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy