Укажите параметры
 Действующая ссылка
¯\_(ツ)_/¯
 Полезная информация
Пример кода токенайзера (backend)
<?php #<password> - пароль #<stream_app> -название аппликации live или svod #<stream_name> - название потока для live, например, stream1. Для vod - название префикс/название_файла, например mp4:sCONF-ID/test.mp4 $pass = '<password>'; $ip = $_SERVER['REMOTE_ADDR']; $time = time(); $file = "<stream_name>"; $hash = "?t=$time&h=".base64_encode( md5( $pass.$file.$time.$ip, true ) ); $host = "<sCONF-ID>.cdn.ngenix.net/<stream_app>/"; $url= "http://".$host.$file."playlist.m3u8".$hash; ?>
#!/usr/bin/python import tornado.ioloop import tornado.web import time import md5 import base64 class MainHandler(tornado.web.RequestHandler): def get(self): self.write(self.request.remote_ip) self.write("Hi!\n") def post(self): uri = self.get_argument('uri', '') password = 'password' epoch_time = int(time.time()) if not uri: content_response = { 'error': True, 'msg': 'Please set uri for hashing.' } else: content_response = { 'error': False, 'msg': 'Thank You.' } self.write(content_response) self.write("\n") self.write(uri) self.write(self.request.remote_ip) self.write(str(epoch_time)) self.write("\n") self.write(base64.encodestring(md5.md5(password + uri + str(epoch_time) + self.request.remote_ip).digest())) def make_app(): return tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": app = make_app() app.listen(9999) tornado.ioloop.IOLoop.current().start()
#!/usr/bin/python import tornado.ioloop import tornado.web import time from base64 import b64decode, b64encode class MainHandler(tornado.web.RequestHandler): def get(self): self.write(self.request.remote_ip) self.write("Hi!\n") def post(self): uri = self.get_argument('uri', '') password = 'password' epoch_time = int(time.time()) if not uri: content_response = { 'error': True, 'msg': 'Please set uri for hashing.' } else: content_response = { 'error': False, 'msg': 'Thank You.' } self.write(content_response) self.write("\n") self.write(uri) self.write(self.request.remote_ip) self.write(str(epoch_time)) self.write("\n") m = hashlib.md5() m.update((password + uri + str(epoch_time) + self.request.remote_ip).encode('utf-8')) self.write(b64encode(m.digest()).decode('utf-8')) def make_app(): return tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": app = make_app() app.listen(9999) tornado.ioloop.IOLoop.current().start()
//index.js var http = require('http'); var math = require('mathjs'); var express = require("express"); var myParser = require("body-parser"); var CryptoJS = require("crypto-js"); var milliseconds = String(math.round((new Date).getTime() / 1000) - 2); var app = express(); app.use(myParser.urlencoded({extended : true})); app.post("/tkn", function(req, res) { var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress; var string = req.body.pass + req.body.uri + milliseconds + ip; var hash = CryptoJS.MD5(string).toString(CryptoJS.enc.Base64); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end("?t=" + milliseconds + "&h=" + hash); }); app.listen(9090);