HelloWorld 发表于 2024-1-12 20:36:43

nodejs 获取油管下载链接的方式


只能在 node 环境运行,react-native 没 node 环境不行。有兴趣的人可以去改编成更通用的版本,以适配非 node 环境

const ytdl = require('ytdl-core')
const url = process.argv
if (!url) {
console.log('usage: ', 'npx ts-node youtube/yt.ts "https://www.youtube.com/watch?v=jNQXAC9IVRw"')
process.exit()
}
ytdl.getBasicInfo(url).then(res=>{
const formats = res.player_response.streamingData.formats
let format = formats
for (let i=1; i<formats.length; i++) {
    if (formats.width > format.width) {
      format = formats
    }
}
const videoUrl = format?.url
const sizeMB = format.bitrate*Number(format.approxDurationMs)/8/1000/1024/1024
const durationSecond = Number(format.approxDurationMs)/1000
const thumbnails = res.player_response.videoDetails.thumbnail.thumbnails
let thumbnail = thumbnails
for (let i=1; i<thumbnails.length; i++) {
    if (thumbnail.width < thumbnails.width) {
      thumbnail = thumbnails
    }
}
const coverUrl = thumbnail?.url
console.log({videoUrl, coverUrl, sizeMB, durationSecond})
})

How 发表于 2024-1-13 05:12:44

我刚刚还在弄自己的博客,用的hexo,node版本问题折腾了好久。有些modules 新版node没有。我从18换到14才成功跑起来。

HelloWorld 发表于 2024-1-13 09:07:44

How 发表于 2024-1-13 05:12
我刚刚还在弄自己的博客,用的hexo,node版本问题折腾了好久。有些modules 新版node没有。我从18换到14才成 ...

nvm 切换一下很方便
页: [1]
查看完整版本: nodejs 获取油管下载链接的方式