追劇的程序員

//@ts-check

// 從144秒開始全屏播放視頻文件
// ffplay -fs -ss 144 G:/XMPCache/Y汐傳-48END.mp4

async function start() {
    let s = `http://vip.zuiku8.com/1806/Y汐傳-46.mp4
             http://vip.zuiku8.com/1806/Y汐傳-47.mp4
             http://vip.zuiku8.com/1806/Y汐傳-48end.mp4`

    let arr = s.split('\n').map(o => o.trim())
    const path = require('path')
    for (const url of arr) {
        await downloadFile(url, path.join(__dirname, url.split('/').pop()))
    }
}

async function downloadFile(url, destPath) {
    const fs = require('fs')
    let stream = fs.createWriteStream(destPath)
    return new Promise((resolve, reject) => {
        /** @type{?} */
        let options = require('url').parse(encodeURI(url))
        options.method = 'GET'
        options.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
            'Accept-Encoding': 'gzip',
            'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
        }
        let req = require(url.split(':')[0]).request(options, (res) => {
            console.log('STATUS:' + res.statusCode);
            res.pipe(stream)
            res.on('end', () => { resolve() })
        })
        req.on('error', (e) => { reject(e) })
        req.end()
    })
}

start()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章