Tôi muốn chuyển đổi url youtube thành tệp mp3. Hiện nay, tôi tải về mp4 sử dụng mô-đun ytdl nút, như vậy:node.js: cách chuyển ống - youtube sang mp4 sang mp3
fs = require 'fs'
ytdl = require 'ytdl'
url = 'http://www.youtube.com/watch?v=v8bOTvg-iaU'
mp4 = './video.mp4'
ytdl(url).pipe(fs.createWriteStream(mp4))
Khi tải về xong, tôi chuyển đổi mp4 thành mp3 bằng cách sử dụng mô-đun thông thạo-ffmpeg, như vậy:
ffmpeg = require 'fluent-ffmpeg'
mp4 = './video.mp4'
mp3 = './audio.mp3'
proc = new ffmpeg({source:mp4})
proc.setFfmpegPath('/Applications/ffmpeg')
proc.saveToFile(mp3, (stdout, stderr)->
return console.log stderr if err?
return console.log 'done'
)
Tôi không muốn phải lưu toàn bộ mp4 trước khi bắt đầu chuyển đổi mp3. Làm thế nào để ống mp4 vào proc vì vậy nó thực hiện việc chuyển đổi khi nó nhận được khối mp4?
Nếu tôi hiểu chính xác, điều này vẫn tải xuống toàn bộ mp4 nhưng thay vì lưu và chuyển đổi, nó chuyển đổi trong khi tải xuống/phát trực tuyến. Nếu tập tin mp4 gốc là 80MB và kết quả là mp3 là 6MB, nó tải 80MB, phải không? –
mp4 được gửi đến cho bạn thông qua một luồng, youtube tôi nghi ngờ sẽ cho phép bạn yêu cầu chỉ các dòng mp3 sepreate .. bạn phải dl toàn bộ điều trong các công trình khác –