tahir7us

Node.JS (Javascript)

Jul 23rd, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. var crypto = require('crypto');
  2.  
  3. function generateSecurePathHash(expires, client_ip, secret) {
  4. if (!expires || !client_ip || !secret) throw new Error('Must provide all token components');
  5.  
  6. var input = expires + client_ip + ' ' + secret;
  7. var binaryHash = crypto.createHash('md5').update(input).digest();
  8. var base64Value = new Buffer(binaryHash).toString('base64');
  9. return base64Value.replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_');
  10. }
  11.  
  12. function getStreamUrl(ip, secret) {
  13. const expiresTimestamp = new Date(Date.now() + (1000 * 60 * 30)).getTime();
  14. const expires = String(Math.round(expiresTimestamp / 1000));
  15.  
  16. const token = generateSecurePathHash(expires, ip, secret);
  17.  
  18. return `https://example.com/video/hls/${token}/${expires}/live.m3u8`;
  19. }
  20.  
  21. getStreamUrl('127.0.0.1', 'uigfp(@#tfpIUDGPFiouGDF');
  22. // https://example.com/video/hls/LdS-kcC-JGVHGNTFlX-6Sw/1526373776/live.m3u8
Advertisement
Add Comment
Please, Sign In to add comment