使用 opensubtitles 在 NodeJS 上下载文件 API

File Download on NodeJS with use opensubtitles API

我是 NodeJS 和 JS 的新用户。我正在使用 NodeJS 制作我的 Web API 项目。我的项目使用 opensubtitles API。 Opensubtitles api 给我一个 .*gz 文件 URL。我想保存到此 URL 上的本地文件夹文件。我尝试了几种方法。但我没有成功。我将文件下载到本地文件夹,但某些语言字符出现损坏。

示例文件Url:

https://dl.opensubtitles.org/en/download/src-api/vrf-19ed0c61/filead/1954767944.gz

如果我用网络浏览器下载它,字符会正确显示。

我的示例代码:

const out = fs.createWriteStream('out.srt'); 
request(subtitle.getSubDownloadLink()).pipe(zlib.createGunzip()).pipe(out);

问题是字符集输出(默认 utf 8)

因此您需要将流文件从 iso-8859-5(gz 中文件的字符集)转换为 utf8

这个有效:

const fs = require('fs')
const request = require('request')
const zlib = require('zlib')
const iconv = require('iconv-lite');

var converterStream = iconv.decodeStream('iso-8859-5');

const out = fs.createWriteStream('out.srt');
request(`https://dl.opensubtitles.org/en/download/src-api/vrf-19ed0c61/filead/1954767944.gz`)
  .pipe(zlib.createGunzip())
  .pipe(converterStream)
  .pipe(out);