291 lines
8.0 KiB
C#
291 lines
8.0 KiB
C#
|
namespace UMP.Services.Youtube
|
|||
|
{
|
|||
|
public partial class YoutubeVideo
|
|||
|
{
|
|||
|
public bool Is3D
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
switch (FormatCode)
|
|||
|
{
|
|||
|
case 82:
|
|||
|
case 83:
|
|||
|
case 84:
|
|||
|
case 85:
|
|||
|
case 100:
|
|||
|
case 101:
|
|||
|
case 102:
|
|||
|
return true;
|
|||
|
default:
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public bool IsAdaptive
|
|||
|
{
|
|||
|
get { return AdaptiveType != AdaptiveFormat.None; }
|
|||
|
}
|
|||
|
|
|||
|
public AdaptiveFormat AdaptiveType
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
switch (FormatCode)
|
|||
|
{
|
|||
|
case 133:
|
|||
|
case 134:
|
|||
|
case 135:
|
|||
|
case 136:
|
|||
|
case 137:
|
|||
|
case 138:
|
|||
|
case 160:
|
|||
|
case 242:
|
|||
|
case 243:
|
|||
|
case 244:
|
|||
|
case 247:
|
|||
|
case 248:
|
|||
|
case 264:
|
|||
|
case 271:
|
|||
|
case 272:
|
|||
|
case 278:
|
|||
|
case 313:
|
|||
|
return AdaptiveFormat.Video;
|
|||
|
case 139:
|
|||
|
case 140:
|
|||
|
case 141:
|
|||
|
case 171:
|
|||
|
case 172:
|
|||
|
case 249:
|
|||
|
case 250:
|
|||
|
case 251:
|
|||
|
return AdaptiveFormat.Audio;
|
|||
|
default:
|
|||
|
return AdaptiveFormat.None;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public int AudioBitrate
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
switch (FormatCode)
|
|||
|
{
|
|||
|
case 5:
|
|||
|
case 6:
|
|||
|
case 250:
|
|||
|
return 64;
|
|||
|
case 17:
|
|||
|
return 24;
|
|||
|
case 18:
|
|||
|
case 82:
|
|||
|
case 83:
|
|||
|
return 96;
|
|||
|
case 22:
|
|||
|
case 37:
|
|||
|
case 38:
|
|||
|
case 45:
|
|||
|
case 46:
|
|||
|
case 101:
|
|||
|
case 102:
|
|||
|
case 172:
|
|||
|
return 192;
|
|||
|
case 34:
|
|||
|
case 35:
|
|||
|
case 43:
|
|||
|
case 44:
|
|||
|
case 100:
|
|||
|
case 140:
|
|||
|
case 171:
|
|||
|
return 128;
|
|||
|
case 36:
|
|||
|
return 38;
|
|||
|
case 84:
|
|||
|
case 85:
|
|||
|
return 152;
|
|||
|
case 251:
|
|||
|
return 160;
|
|||
|
case 139:
|
|||
|
case 249:
|
|||
|
return 48;
|
|||
|
case 141:
|
|||
|
return 256;
|
|||
|
default:
|
|||
|
return -1;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public int Resolution
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
switch (FormatCode)
|
|||
|
{
|
|||
|
case 5:
|
|||
|
case 36:
|
|||
|
case 83:
|
|||
|
case 133:
|
|||
|
case 242:
|
|||
|
return 240;
|
|||
|
case 6:
|
|||
|
return 270;
|
|||
|
case 17:
|
|||
|
case 160:
|
|||
|
case 278:
|
|||
|
return 144;
|
|||
|
case 18:
|
|||
|
case 34:
|
|||
|
case 43:
|
|||
|
case 82:
|
|||
|
case 100:
|
|||
|
case 101:
|
|||
|
case 134:
|
|||
|
case 243:
|
|||
|
return 360;
|
|||
|
case 22:
|
|||
|
case 45:
|
|||
|
case 84:
|
|||
|
case 102:
|
|||
|
case 136:
|
|||
|
case 247:
|
|||
|
return 720;
|
|||
|
case 35:
|
|||
|
case 44:
|
|||
|
case 135:
|
|||
|
case 244:
|
|||
|
return 480;
|
|||
|
case 37:
|
|||
|
case 46:
|
|||
|
case 137:
|
|||
|
case 248:
|
|||
|
return 1080;
|
|||
|
case 38:
|
|||
|
return 3072; // what
|
|||
|
case 85:
|
|||
|
return 520;
|
|||
|
case 138:
|
|||
|
case 272:
|
|||
|
case 313:
|
|||
|
return 2160;
|
|||
|
case 264:
|
|||
|
case 271:
|
|||
|
return 1440;
|
|||
|
default:
|
|||
|
return -1;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override VideoFormat VideoFormat
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
switch (FormatCode)
|
|||
|
{
|
|||
|
case 5:
|
|||
|
case 6:
|
|||
|
case 34:
|
|||
|
case 35:
|
|||
|
return VideoFormat.Flv;
|
|||
|
case 13:
|
|||
|
case 17:
|
|||
|
case 36:
|
|||
|
return VideoFormat.Mobile;
|
|||
|
case 18:
|
|||
|
case 22:
|
|||
|
case 37:
|
|||
|
case 38:
|
|||
|
case 82:
|
|||
|
case 83:
|
|||
|
case 84:
|
|||
|
case 85:
|
|||
|
case 133:
|
|||
|
case 134:
|
|||
|
case 135:
|
|||
|
case 136:
|
|||
|
case 137:
|
|||
|
case 138:
|
|||
|
case 160:
|
|||
|
case 264:
|
|||
|
case 139:
|
|||
|
case 140:
|
|||
|
case 141:
|
|||
|
return VideoFormat.Mp4;
|
|||
|
case 43:
|
|||
|
case 44:
|
|||
|
case 45:
|
|||
|
case 46:
|
|||
|
case 100:
|
|||
|
case 101:
|
|||
|
case 102:
|
|||
|
case 242:
|
|||
|
case 243:
|
|||
|
case 244:
|
|||
|
case 247:
|
|||
|
case 248:
|
|||
|
case 271:
|
|||
|
case 272:
|
|||
|
case 278:
|
|||
|
case 171:
|
|||
|
case 172:
|
|||
|
case 249:
|
|||
|
case 250:
|
|||
|
case 251:
|
|||
|
case 313:
|
|||
|
return VideoFormat.WebM;
|
|||
|
default:
|
|||
|
return VideoFormat.Unknown;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override AudioFormat AudioFormat
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
switch (FormatCode)
|
|||
|
{
|
|||
|
case 5:
|
|||
|
case 6:
|
|||
|
return AudioFormat.Mp3;
|
|||
|
case 13:
|
|||
|
case 17:
|
|||
|
case 18:
|
|||
|
case 22:
|
|||
|
case 34:
|
|||
|
case 35:
|
|||
|
case 36:
|
|||
|
case 37:
|
|||
|
case 38:
|
|||
|
case 82:
|
|||
|
case 83:
|
|||
|
case 84:
|
|||
|
case 85:
|
|||
|
case 139:
|
|||
|
case 140:
|
|||
|
case 141:
|
|||
|
return AudioFormat.Aac;
|
|||
|
case 43:
|
|||
|
case 44:
|
|||
|
case 45:
|
|||
|
case 46:
|
|||
|
case 100:
|
|||
|
case 101:
|
|||
|
case 102:
|
|||
|
case 171:
|
|||
|
case 172:
|
|||
|
return AudioFormat.Vorbis;
|
|||
|
case 249:
|
|||
|
case 250:
|
|||
|
case 251:
|
|||
|
return AudioFormat.Opus;
|
|||
|
default:
|
|||
|
return AudioFormat.Unknown;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|