Gistrec

mp3 duration url

May 6th, 2021 (edited)
164
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const getMP3Duration = require('get-mp3-duration');
  2. const axios = require("axios");
  3. const https = require("https");
  4.  
  5.  
  6. const axios_duration = async function(url) {
  7.     // Буффер, куда будем скачивать аудиозапись.
  8.     const response = await axios.get(url, {
  9.         responseType: 'arraybuffer'
  10.     });
  11.     return getMP3Duration(response.data);
  12. };
  13.  
  14. const http_duration = async function(url) {
  15.     return new Promise((resolve, reject) => {
  16.         // Буффер, куда будем скачивать аудиозапись.
  17.         let buffer = new Buffer(0);
  18.  
  19.         https.get(url, function(res) {
  20.             res.on('data', function(chunk) {
  21.                 buffer = Buffer.concat([buffer, chunk]);
  22.             });
  23.             res.on('end', function() {
  24.                 const duration = getMP3Duration(buffer);
  25.                 resolve(duration);
  26.             });
  27.             res.on('error', function() {
  28.                 resolve(-1);
  29.             });
  30.         })
  31.     })
  32. };
  33.  
  34. (async () => {
  35.     const start = new Date();
  36.  
  37.     const url = 'https://dasha-call-records-public-beta.s3.amazonaws.com/24228bf4-6f00-4a9a-af81-b6e06e6ddc7d/call.mp3';
  38.     const ms = await http_duration(url);
  39.     console.log(ms);
  40.  
  41.     const end = new Date();
  42.     const elapsed = (end.getTime() - start.getTime()) / 1000;
  43.     console.log(`Script duration: ${elapsed}`);
  44. })();
  45.  
Comments
  • User was banned
Add Comment
Please, Sign In to add comment