如何在不先下载每个分辨率的情况下获取文件大小 ytdl-core

问题描述

所以我正在使用 YTDL-core 制作一个项目

我有一个问题,如何在不下载的情况下获取每个分辨率的文件大小

到目前为止我的代码

const { getInfo } = require("ytdl-core");
const ytdl = require("ytdl-core")
const url = 'https://www.youtube.com/watch?v=FOwXlANwerI'

const vid = ytdl(url)
ytdl.getInfo(url).then(info =>{
    console.log("Video Title : "+ info.videoDetails.title) 
}) 

我想做个

console.log("144p" + 144 p size)

console.log("240p" + 240 p size)

console.log("360p" + 360 p size)

console.log("480p" + 480 p size)

我该怎么做?

解决方法

使用 formats.contentLengthformats[] 是一个数组,其中填充了找到的每种格式的详细信息,例如调用 ytdl.getBasicInfo()

这是典型 JSON 响应的摘录:

`"formats": [
    {
      "itag": 18,"mimeType": "video/mp4; codecs=\"avc1.42001E,mp4a.40.2\"","bitrate": 730250,"width": 640,"height": 360,"lastModified": "1540940877707739","contentLength": "17340341","quality": "medium","fps": 30,"qualityLabel": "360p","projectionType": "RECTANGULAR","averageBitrate": 729908,"audioQuality": "AUDIO_QUALITY_LOW","approxDurationMs": "190055","audioSampleRate": "44100","audioChannels": 2,"s": "QOq0AJ8wRQIgCbPrsAEt3PIyCCEET_Fcoa0B_hJSRDVqLQdD0=uH8ZkCIQCcf5m4i52WhllLYCTKzFPb97os3BCyYtJazCSyoEpHrQ=C","sp": "sig","url": "https://r2---sn-hp57kn7z.googlevideo.com/videoplayback?expire=1608282564&ei=ZB3cX9DUDsPR4QSQq76oBw&ip=0.0.0.0&id=o-AFfB7IbdqRRBTM2a3_IS5lxOxi2aCPz9i1wuj7TqTMgs&itag=18&source=youtube&requiressl=yes&mh=bz&mm=31%2C26&mn=sn-hp57kn7z%2Csn-q4fl6ns6&ms=au%2Conr&mv=m&mvi=2&pl=24&initcwndbps=278750&vprv=1&mime=video%2Fmp4&ns=Ut07FDufHwnP4p0Bs9qdDDgF&gir=yes&clen=17340341&ratebypass=yes&dur=190.055&lmt=1540940877707739&mt=1608260683&fvip=2&c=WEB&txp=5431432&n=5kzbgSygQqixfwo9g&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhANdVqyHVbFSicpCXRz0qj5OXLolFEC5sup_vXuzXIkUAAiEA_RMc27U0fdbTOpNRwz9Kjaax8kRNKs1D04UCZhcPEhk%3D&sig=AOq0QJ8wRQIgCbPrsAEt3PIyCCEET_Fcoa0B_hJSRDVqLQdD0CuH8ZkCIQCcf5m4i52WhllLYCTKzFPb97os3BCyYtJazCSyoEpHrQ%3D%3D"
    }
  ],`

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...