Deno js 首試,小示例


deno js目前快要發布1.0。其實我已經安裝了,之前有一個批量下載視頻的需求,於是我就試了一下。我的需求是下載m3u8的視頻,這些視頻都是視頻流的模式播放,要下載m3u8無非是把地址中的ts片斷全部下載,然后合並,最后使用ffmpg轉成mp4文件。這里使用了一個C#的開源項目來下載,它已經幫我們做好了下載到合並視頻這一步,我們只要寫一個爬蟲,去抓視頻地址。

爬蟲這一步跳過,假設已經下載並保存成txt文件。我們都知道,js的異步比較難操作,為了更好利用帶寬,我不需要並行下載。因為2個,3個一起下載,速度是一樣的,只是速度均分了。我還不想寫處理異常的,出現問題,串行的就會停在那里,方便觀察。

deno還是沒有發布的,你所有要的信息,只能去官網上找api。在這個需求我們無非一個循環就可以解決:

const decoder = new TextDecoder("utf-8");
const data = Deno.readFileSync("download.txt");
const list = decoder.decode(data);
const downloadArray = list.split("\n");

const download = async (url) => {
  const p = Deno.run({
    args: ["./N_m3u8DL-CLI_Core", url]
  });
  return await p.status()
}

const forLoop = async () => {
  for (let index = 0; index < downloadArray.length; index++) {
    const item = downloadArray[index]
    await download(item)
  }
}

forLoop()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM