从命令行获取视频信息, 输出如下
[Log] -> 执行命令'youtube-dl https://youtu.be/sbz3fOe7rog -F'结果:
[youtube] sbz3fOe7rog: Downloading webpage
[youtube] sbz3fOe7rog: Downloading video info webpage
[info] Available formats for sbz3fOe7rog:
format code extension resolution note
249 webm audio only tiny 59k , opus @ 50k (48000Hz), 1.50MiB
250 webm audio only tiny 78k , opus @ 70k (48000Hz), 2.00MiB
140 m4a audio only tiny 129k , m4a_dash container, mp4a.40.2@128k (44100Hz), 3.47MiB
251 webm audio only tiny 150k , opus @160k (48000Hz), 3.85MiB
278 webm 256x144 144p 95k , webm container, vp9, 15fps, video only, 2.36MiB
160 mp4 256x144 144p 111k , avc1.4d400c, 15fps, video only, 2.95MiB
242 webm 426x240 240p 162k , vp9, 15fps, video only, 2.62MiB
133 mp4 426x240 240p 247k , avc1.4d4015, 15fps, video only, 6.58MiB
18 mp4 512x288 240p 355k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 9.58MiB (best)
此时 echo -n $?
返回 0
使用正则表达式来匹配, 分组并捕获数据
val listAudio = ArrayList
一个接口就诞生了
{
"v" : "Ce-4lXZxmvM",
"best" : {
"audio" : {
"id" : 251,
"format" : "webm",
"rate" : 164,
"info" : "opus @160k (48000Hz)",
"size" : 31.89
},
"video" : {
"id" : 137,
"format" : "mp4",
"scale" : "1440x1080",
"frame" : 1080,
"rate" : 1643,
"info" : "avc1.640028, 30fps",
"size" : 30.17
}
},
"available" : {
"audios" : [ {
"id" : 249,
"format" : "webm",
"rate" : 73,
"info" : "opus @ 50k (48000Hz)",
"size" : 12.1
}, {
"id" : 250,
"format" : "webm",
"rate" : 93,
"info" : "opus @ 70k (48000Hz)",
"size" : 16.1
}, {
"id" : 140,
"format" : "m4a",
"rate" : 132,
"info" : "m4a_dash container, mp4a.40.2@128k (44100Hz)",
"size" : 31.22
}, {
"id" : 251,
"format" : "webm",
"rate" : 164,
"info" : "opus @160k (48000Hz)",
"size" : 31.89
} ],
"videos" : [ {
"id" : 278,
"format" : "webm",
"scale" : "192x144",
"frame" : 144,
"rate" : 59,
"info" : "webm container, vp9, 30fps",
"size" : 6.39
}, {
"id" : 160,
"format" : "mp4",
"scale" : "192x144",
"frame" : 144,
"rate" : 84,
"info" : "avc1.4d400c, 30fps",
"size" : 2.87
}, {
"id" : 242,
"format" : "webm",
"scale" : "320x240",
"frame" : 240,
"rate" : 117,
"info" : "vp9, 30fps",
"size" : 10.15
}, {
"id" : 133,
"format" : "mp4",
"scale" : "320x240",
"frame" : 240,
"rate" : 175,
"info" : "avc1.4d400d, 30fps",
"size" : 4.22
}, {
"id" : 243,
"format" : "webm",
"scale" : "480x360",
"frame" : 360,
"rate" : 226,
"info" : "vp9, 30fps",
"size" : 16.66
}, {
"id" : 244,
"format" : "webm",
"scale" : "640x480",
"frame" : 480,
"rate" : 378,
"info" : "vp9, 30fps",
"size" : 25.6
}, {
"id" : 134,
"format" : "mp4",
"scale" : "480x360",
"frame" : 360,
"rate" : 416,
"info" : "avc1.4d401e, 30fps",
"size" : 7.99
}, {
"id" : 247,
"format" : "webm",
"scale" : "960x720",
"frame" : 720,
"rate" : 641,
"info" : "vp9, 30fps",
"size" : 42.0
}, {
"id" : 135,
"format" : "mp4",
"scale" : "640x480",
"frame" : 480,
"rate" : 728,
"info" : "avc1.4d401e, 30fps",
"size" : 13.01
}, {
"id" : 248,
"format" : "webm",
"scale" : "1440x1080",
"frame" : 1080,
"rate" : 1039,
"info" : "vp9, 30fps",
"size" : 69.33
}, {
"id" : 136,
"format" : "mp4",
"scale" : "960x720",
"frame" : 720,
"rate" : 1129,
"info" : "avc1.4d401f, 30fps",
"size" : 20.92
}, {
"id" : 137,
"format" : "mp4",
"scale" : "1440x1080",
"frame" : 1080,
"rate" : 1643,
"info" : "avc1.640028, 30fps",
"size" : 30.17
}, {
"id" : 18,
"format" : "mp4",
"scale" : "480x360",
"frame" : 360,
"rate" : 275,
"info" : "avc1.42001E, mp4a.40.2@ 96k (44100Hz)",
"size" : 66.41
} ]
}
}