Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const getMP3Duration = require('get-mp3-duration');
- const axios = require("axios");
- const https = require("https");
- const axios_duration = async function(url) {
- // Буффер, куда будем скачивать аудиозапись.
- const response = await axios.get(url, {
- responseType: 'arraybuffer'
- });
- return getMP3Duration(response.data);
- };
- const http_duration = async function(url) {
- return new Promise((resolve, reject) => {
- // Буффер, куда будем скачивать аудиозапись.
- let buffer = new Buffer(0);
- https.get(url, function(res) {
- res.on('data', function(chunk) {
- buffer = Buffer.concat([buffer, chunk]);
- });
- res.on('end', function() {
- const duration = getMP3Duration(buffer);
- resolve(duration);
- });
- res.on('error', function() {
- resolve(-1);
- });
- })
- })
- };
- (async () => {
- const start = new Date();
- const url = 'https://dasha-call-records-public-beta.s3.amazonaws.com/24228bf4-6f00-4a9a-af81-b6e06e6ddc7d/call.mp3';
- const ms = await http_duration(url);
- console.log(ms);
- const end = new Date();
- const elapsed = (end.getTime() - start.getTime()) / 1000;
- console.log(`Script duration: ${elapsed}`);
- })();