Coder Social home page Coder Social logo

dhruv-2015 / jiotvserver Goto Github PK

View Code? Open in Web Editor NEW
146.0 146.0 98.0 14.8 MB

JIOTV Server Script is made to Streaming LiveTV Channels from JIOTV using indian server (vps) or your phone and Play it on Apps or Browser ( Using New APIs )

Home Page: https://discord.gg/suyzkCQKhC

Shell 0.01% Dockerfile 0.02% JavaScript 95.95% HTML 0.91% Batchfile 0.01% CSS 0.01% Svelte 3.11%
iptv iptv-links iptv-m3u jiotv jiotv-script jiotvserver jtv jtvserver latest-jiotv live-tv livetv streaming tv

jiotvserver's People

Contributors

dhruv-2015 avatar rrjanbiah avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

jiotvserver's Issues

Catchup not working

I tried to watch many channels catchup
But none are working ๐Ÿ˜•
Live channels are working good but catch-up is not functional
Please fix this
I tried colors TV, history tv 18 HD Hindi catchups, etc..

On VPS not working 500 Internal Error

I have cloned this repo in my vps and I have started the app successfully fully without any error using pm2. But when I open the url then it is showing 500 Internal Error

Provide decrypted source code

Is your feature request related to a problem? Please describe.
Please provide decrypted source code, it will be easy to contribute to code

Some Channels are not working

Describe the bug
Very few channels are not getting loaded in Tivimate (or) in HLS players
It throws "no EXTM3U delimiter" error

Expected behavior
Channels should work fine

Screenshots
image

Playlist not working in Tivimate

Describe the bug
Playlist not working in Tivimate.

Expected behavior
There are two types of video quality for each resolution one is working but other one is not working in Tivimate. Need to select the
Screenshot_2023-04-27-23-18-19-50_c4258fadb54036c5ffc2dcda5ee0e9e3

CN+ Tamil Not working

Describe the bug
CN+ Tamil not working please resolve this thanks

Expected behavior
description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Generate Playlist is not working

The generate playlist function is not working. when i click it it takes too long and after some time it shows some error occured. When i tried debugging myself as i am a developer too, i found out that the master playlist is old and doesn't work anymore. Can you update the script ?

SyntaxError: Unexpected token '.'

node index.js or ./start.sh throws this error :-

SyntaxError: Unexpected token '.'
    at Loader.moduleStrategy (internal/modules/esm/translators.js:133:18)
file:///home/bakshi/JTVServer/build/handler.js:1217
					req.connection?.remoteAddress ||
					               ^

OS: Xubuntu 22.04 LTS
Nodejs version: v12.22.9
npm version: 8.5.1

login

Please login with USERNAME & PASSWORD.

AxiosError: getaddrinfo ENOTFOUND while streaming

Describe the bug
While in the mid of streaming, Got AxiosError: getaddrinfo ENOTFOUND
The channel streams for around 2 minutes, then we are getting this error and the node stops there.

Expected behavior
Channel should stream without any issues

Desktop:

Error Log

D:\JIOTVServer-main\V2.0.3\JTVServer\node_modules\axios\dist\node\axios.cjs:725
  AxiosError.call(axiosError, error.message, code, config, request, response);
             ^
AxiosError: getaddrinfo ENOTFOUND smumcdnems01.cdnsrv.jio.com
    at AxiosError.from (D:\JIOTVServer-main\V2.0.3\JTVServer\node_modules\axios\dist\node\axios.cjs:725:14)
    at RedirectableRequest.handleRequestError (D:\JIOTVServer-main\V2.0.3\JTVServer\node_modules\axios\dist\node\axios.cjs:2465:25)
    at RedirectableRequest.emit (node:events:513:28)
    at eventHandlers.<computed> (D:\JIOTVServer-main\V2.0.3\JTVServer\node_modules\follow-redirects\index.js:14:24)
    at ClientRequest.emit (node:events:513:28)
    at TLSSocket.socketErrorListener (node:_http_client:502:9)
    at TLSSocket.emit (node:events:513:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  hostname: 'smumcdnems01.cdnsrv.jio.com',
  syscall: 'getaddrinfo',
  code: 'ENOTFOUND',
  errno: -3008,
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false
    },
    adapter: [Function: httpAdapter],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: {
      FormData: [Function: FormData] {
        LINE_BREAK: '\r\n',
        DEFAULT_CONTENT_TYPE: 'application/octet-stream'
      },
      Blob: [class Blob]
    },
    validateStatus: [Function: validateStatus],
    headers: AxiosHeaders {
      Accept: '*/*',
      'User-Agent': 'plaYtv/7.0.8 (Linux;Android 9) ExoPlayerLib/2.11.7',
      cookie: '__hdnea__=st=1679849889~exp=1679936289~acl=/Thanthi_TV/*~hmac=6b9f2bdb471dd75e489039042f417a0318ff1e436fe7eec7ab1d465845328484',
      'Accept-Encoding': 'gzip, deflate, br',
      [Symbol(defaults)]: { Accept: 'application/json, text/plain, */*' }
    },
    method: 'get',
    url: 'https://smumcdnems01.cdnsrv.jio.com/jiotvmblive.cdn.jio.com/Thanthi_TV/Thanthi_TV_800.m3u8',
    params: {},
    data: undefined
  },
  request: <ref *3> Writable {
    _writableState: WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      afterWriteTickInfo: null,
      buffered: [],
      bufferedIndex: 0,
      allBuffers: true,
      allNoop: true,
      pendingcb: 0,
      constructed: true,
      prefinished: false,
      errorEmitted: false,
      emitClose: true,
      autoDestroy: true,
      errored: null,
      closed: false,
      closeEmitted: false,
      [Symbol(kOnFinished)]: []
    },
    _events: [Object: null prototype] {
      response: [Function: handleResponse],
      error: [Function: handleRequestError],
      socket: [Function: handleRequestSocket]
    },
    _eventsCount: 3,
    _maxListeners: undefined,
    _options: {
      maxRedirects: 21,
      maxBodyLength: Infinity,
      protocol: 'https:',
      path: '/jiotvmblive.cdn.jio.com/Thanthi_TV/Thanthi_TV_800.m3u8',
      method: 'GET',
      headers: [Object: null prototype] {
        Accept: '*/*',
        'User-Agent': 'plaYtv/7.0.8 (Linux;Android 9) ExoPlayerLib/2.11.7',
        cookie: '__hdnea__=st=1679849889~exp=1679936289~acl=/Thanthi_TV/*~hmac=6b9f2bdb471dd75e489039042f417a0318ff1e436fe7eec7ab1d465845328484',
        'Accept-Encoding': 'gzip, deflate, br'
      },
      agents: { http: undefined, https: undefined },
      auth: undefined,
      beforeRedirect: [Function: dispatchBeforeRedirect],
      beforeRedirects: { proxy: [Function: beforeRedirect] },
      hostname: 'smumcdnems01.cdnsrv.jio.com',
      port: '',
      agent: undefined,
      nativeProtocols: {
        'http:': {
          _connectionListener: [Function: connectionListener],
          METHODS: [
            'ACL',         'BIND',       'CHECKOUT',
            'CONNECT',     'COPY',       'DELETE',
            'GET',         'HEAD',       'LINK',
            'LOCK',        'M-SEARCH',   'MERGE',
            'MKACTIVITY',  'MKCALENDAR', 'MKCOL',
            'MOVE',        'NOTIFY',     'OPTIONS',
            'PATCH',       'POST',       'PROPFIND',
            'PROPPATCH',   'PURGE',      'PUT',
            'REBIND',      'REPORT',     'SEARCH',
            'SOURCE',      'SUBSCRIBE',  'TRACE',
            'UNBIND',      'UNLINK',     'UNLOCK',
            'UNSUBSCRIBE'
          ],
          STATUS_CODES: {
            '100': 'Continue',
            '101': 'Switching Protocols',
            '102': 'Processing',
            '103': 'Early Hints',
            '200': 'OK',
            '201': 'Created',
            '202': 'Accepted',
            '203': 'Non-Authoritative Information',
            '204': 'No Content',
            '205': 'Reset Content',
            '206': 'Partial Content',
            '207': 'Multi-Status',
            '208': 'Already Reported',
            '226': 'IM Used',
            '300': 'Multiple Choices',
            '301': 'Moved Permanently',
            '302': 'Found',
            '303': 'See Other',
            '304': 'Not Modified',
            '305': 'Use Proxy',
            '307': 'Temporary Redirect',
            '308': 'Permanent Redirect',
            '400': 'Bad Request',
            '401': 'Unauthorized',
            '402': 'Payment Required',
            '403': 'Forbidden',
            '404': 'Not Found',
            '405': 'Method Not Allowed',
            '406': 'Not Acceptable',
            '407': 'Proxy Authentication Required',
            '408': 'Request Timeout',
            '409': 'Conflict',
            '410': 'Gone',
            '411': 'Length Required',
            '412': 'Precondition Failed',
            '413': 'Payload Too Large',
            '414': 'URI Too Long',
            '415': 'Unsupported Media Type',
            '416': 'Range Not Satisfiable',
            '417': 'Expectation Failed',
            '418': "I'm a Teapot",
            '421': 'Misdirected Request',
            '422': 'Unprocessable Entity',
            '423': 'Locked',
            '424': 'Failed Dependency',
            '425': 'Too Early',
            '426': 'Upgrade Required',
            '428': 'Precondition Required',
            '429': 'Too Many Requests',
            '431': 'Request Header Fields Too Large',
            '451': 'Unavailable For Legal Reasons',
            '500': 'Internal Server Error',
            '501': 'Not Implemented',
            '502': 'Bad Gateway',
            '503': 'Service Unavailable',
            '504': 'Gateway Timeout',
            '505': 'HTTP Version Not Supported',
            '506': 'Variant Also Negotiates',
            '507': 'Insufficient Storage',
            '508': 'Loop Detected',
            '509': 'Bandwidth Limit Exceeded',
            '510': 'Not Extended',
            '511': 'Network Authentication Required'
          },
          Agent: [Function: Agent] { defaultMaxSockets: Infinity },
          ClientRequest: [Function: ClientRequest],
          IncomingMessage: [Function: IncomingMessage],
          OutgoingMessage: [Function: OutgoingMessage],
          Server: [Function: Server],
          ServerResponse: [Function: ServerResponse],
          createServer: [Function: createServer],
          validateHeaderName: [Function: __node_internal_],
          validateHeaderValue: [Function: __node_internal_],
          get: [Function: get],
          request: [Function: request],
          setMaxIdleHTTPParsers: [Function: setMaxIdleHTTPParsers],
          maxHeaderSize: [Getter],
          globalAgent: [Getter/Setter]
        },
        'https:': {
          Agent: [Function: Agent],
          globalAgent: Agent {
            _events: [Object: null prototype],
            _eventsCount: 2,
            _maxListeners: undefined,
            defaultPort: 443,
            protocol: 'https:',
            options: [Object: null prototype],
            requests: [Object: null prototype] {},
            sockets: [Object: null prototype],
            freeSockets: [Object: null prototype] {},
            keepAliveMsecs: 1000,
            keepAlive: false,
            maxSockets: Infinity,
            maxFreeSockets: 256,
            scheduling: 'lifo',
            maxTotalSockets: Infinity,
            totalSocketCount: 1,
            maxCachedSessions: 100,
            _sessionCache: [Object],
            [Symbol(kCapture)]: false
          },
          Server: [Function: Server],
          createServer: [Function: createServer],
          get: [Function: get],
          request: [Function: request]
        }
      },
      pathname: '/jiotvmblive.cdn.jio.com/Thanthi_TV/Thanthi_TV_800.m3u8'
    },
    _ended: true,
    _ending: true,
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 0,
    _requestBodyBuffers: [],
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: <ref *1> ClientRequest {
      _events: [Object: null prototype] {
        response: [Function: bound onceWrapper] {
          listener: [Function (anonymous)]
        },
        abort: [Function (anonymous)],
        aborted: [Function (anonymous)],
        connect: [Function (anonymous)],
        error: [Function (anonymous)],
        socket: [Function (anonymous)],
        timeout: [Function (anonymous)]
      },
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: false,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 0,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: false,
      socket: <ref *2> TLSSocket {
        _tlsOptions: {
          allowHalfOpen: undefined,
          pipe: false,
          secureContext: SecureContext { context: SecureContext {} },
          isServer: false,
          requestCert: true,
          rejectUnauthorized: true,
          session: Buffer(2073) [Uint8Array] [
             48, 130,   8,  21,   2,   1,   1,   2,   2,   3,   3,   4,
              2, 192,  47,   4,  32, 202,  19,  32, 219,  32, 249, 115,
             85, 246, 234, 231, 178, 125,  91, 252, 146,  84,  10, 125,
             71, 247, 214, 103, 141, 189,  64,  14,  75,   9, 209, 192,
             99,   4,  48,   7, 218,  59, 201,  20, 241,  51, 248, 216,
             83,  84, 129, 141, 111,  85, 167,  54, 100, 156,  25, 233,
             10, 162,  92, 230,  31, 247, 114,  16,   5,  24, 241,  72,
            187, 210,  98, 198, 250,  29, 181,  89,  47,   3,  26, 153,
             45,  48, 165, 161,
            ... 1973 more items
          ],
          ALPNProtocols: undefined,
          requestOCSP: undefined,
          enableTrace: undefined,
          pskCallback: undefined,
          highWaterMark: undefined,
          onread: undefined,
          signal: undefined
        },
        _secureEstablished: false,
        _securePending: false,
        _newSessionPending: false,
        _controlReleased: true,
        secureConnecting: true,
        _SNICallback: null,
        servername: null,
        alpnProtocol: null,
        authorized: false,
        authorizationError: null,
        encrypted: true,
        _events: [Object: null prototype] {
          close: [
            [Function: onSocketCloseDestroySSL],
            [Function],
            [Function: onClose],
            [Function: socketCloseListener],
            [Function]
          ],
          end: [ [Function: onConnectEnd], [Function: onReadableStreamEnd] ],
          newListener: [Function: keylogNewListener],
          connect: [ [Function], [Function], [Function] ],
          secure: [Function: onConnectSecure],
          session: [Function (anonymous)],
          free: [Function: onFree],
          timeout: [Function: onTimeout],
          agentRemove: [Function: onRemove],
          error: [Function: socketErrorListener],
          drain: [Function: ondrain]
        },
        _eventsCount: 11,
        connecting: false,
        _hadError: true,
        _parent: null,
        _host: 'smumcdnems01.cdnsrv.jio.com',
        _closeAfterHandlingError: false,
        _readableState: ReadableState {
          objectMode: false,
          highWaterMark: 16384,
          buffer: BufferList { head: null, tail: null, length: 0 },
          length: 0,
          pipes: [],
          flowing: true,
          ended: false,
          endEmitted: false,
          reading: true,
          constructed: true,
          sync: false,
          needReadable: true,
          emittedReadable: false,
          readableListening: false,
          resumeScheduled: false,
          errorEmitted: true,
          emitClose: false,
          autoDestroy: true,
          destroyed: true,
          errored: Error: getaddrinfo ENOTFOUND smumcdnems01.cdnsrv.jio.com
              at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
            errno: -3008,
            code: 'ENOTFOUND',
            syscall: 'getaddrinfo',
            hostname: 'smumcdnems01.cdnsrv.jio.com'
          },
          closed: true,
          closeEmitted: true,
          defaultEncoding: 'utf8',
          awaitDrainWriters: null,
          multiAwaitDrain: false,
          readingMore: false,
          dataEmitted: false,
          decoder: null,
          encoding: null,
          [Symbol(kPaused)]: false
        },
        _maxListeners: undefined,
        _writableState: WritableState {
          objectMode: false,
          highWaterMark: 16384,
          finalCalled: false,
          needDrain: false,
          ending: false,
          ended: false,
          finished: false,
          destroyed: true,
          decodeStrings: false,
          defaultEncoding: 'utf8',
          length: 375,
          writing: true,
          corked: 0,
          sync: false,
          bufferProcessing: false,
          onwrite: [Function: bound onwrite],
          writecb: [Function: bound onFinish],
          writelen: 375,
          afterWriteTickInfo: null,
          buffered: [],
          bufferedIndex: 0,
          allBuffers: true,
          allNoop: true,
          pendingcb: 1,
          constructed: true,
          prefinished: false,
          errorEmitted: true,
          emitClose: false,
          autoDestroy: true,
          errored: Error: getaddrinfo ENOTFOUND smumcdnems01.cdnsrv.jio.com
              at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
            errno: -3008,
            code: 'ENOTFOUND',
            syscall: 'getaddrinfo',
            hostname: 'smumcdnems01.cdnsrv.jio.com'
          },
          closed: true,
          closeEmitted: true,
          [Symbol(kOnFinished)]: []
        },
        allowHalfOpen: false,
        _sockname: null,
        _pendingData: 'GET /jiotvmblive.cdn.jio.com/Thanthi_TV/Thanthi_TV_800.m3u8 HTTP/1.1\r\n' +
          'Accept: */*\r\n' +
          'User-Agent: plaYtv/7.0.8 (Linux;Android 9) ExoPlayerLib/2.11.7\r\n' +
          'cookie: __hdnea__=st=1679849889~exp=1679936289~acl=/Thanthi_TV/*~hmac=6b9f2bdb471dd75e489039042f417a0318ff1e436fe7eec7ab1d465845328484\r\n' +
          'Accept-Encoding: gzip, deflate, br\r\n' +
          'Host: smumcdnems01.cdnsrv.jio.com\r\n' +
          'Connection: close\r\n' +
          '\r\n',
        _pendingEncoding: 'latin1',
        server: undefined,
        _server: null,
        ssl: null,
        _requestCert: true,
        _rejectUnauthorized: true,
        parser: null,
        _httpMessage: [Circular *1],
        [Symbol(res)]: TLSWrap {
          _parent: TCP {
            reading: [Getter/Setter],
            onconnection: null,
            [Symbol(owner_symbol)]: [Circular *2],
            [Symbol(handle_onclose)]: [Function: done]
          },
          _parentWrap: undefined,
          _secureContext: SecureContext { context: SecureContext {} },
          reading: false,
          onkeylog: [Function: onkeylog],
          onhandshakestart: {},
          onhandshakedone: [Function (anonymous)],
          onocspresponse: [Function: onocspresponse],
          onnewsession: [Function: onnewsessionclient],
          onerror: [Function: onerror],
          [Symbol(owner_symbol)]: [Circular *2]
        },
        [Symbol(verified)]: false,
        [Symbol(pendingSession)]: null,
        [Symbol(async_id_symbol)]: 99296,
        [Symbol(kHandle)]: null,
        [Symbol(lastWriteQueueSize)]: 0,
        [Symbol(timeout)]: null,
        [Symbol(kBuffer)]: null,
        [Symbol(kBufferCb)]: null,
        [Symbol(kBufferGen)]: null,
        [Symbol(kCapture)]: false,
        [Symbol(kSetNoDelay)]: false,
        [Symbol(kSetKeepAlive)]: true,
        [Symbol(kSetKeepAliveInitialDelay)]: 60,
        [Symbol(kBytesRead)]: 0,
        [Symbol(kBytesWritten)]: 0,
        [Symbol(connect-options)]: {
          rejectUnauthorized: true,
          ciphers: 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA',
          checkServerIdentity: [Function: checkServerIdentity],
          minDHSize: 1024,
          session: Buffer(2073) [Uint8Array] [
             48, 130,   8,  21,   2,   1,   1,   2,   2,   3,   3,   4,
              2, 192,  47,   4,  32, 202,  19,  32, 219,  32, 249, 115,
             85, 246, 234, 231, 178, 125,  91, 252, 146,  84,  10, 125,
             71, 247, 214, 103, 141, 189,  64,  14,  75,   9, 209, 192,
             99,   4,  48,   7, 218,  59, 201,  20, 241,  51, 248, 216,
             83,  84, 129, 141, 111,  85, 167,  54, 100, 156,  25, 233,
             10, 162,  92, 230,  31, 247, 114,  16,   5,  24, 241,  72,
            187, 210,  98, 198, 250,  29, 181,  89,  47,   3,  26, 153,
             45,  48, 165, 161,
            ... 1973 more items
          ],
          maxRedirects: 21,
          maxBodyLength: Infinity,
          protocol: 'https:',
          path: null,
          method: 'GET',
          headers: [Object: null prototype] {
            Accept: '*/*',
            'User-Agent': 'plaYtv/7.0.8 (Linux;Android 9) ExoPlayerLib/2.11.7',
            cookie: '__hdnea__=st=1679849889~exp=1679936289~acl=/Thanthi_TV/*~hmac=6b9f2bdb471dd75e489039042f417a0318ff1e436fe7eec7ab1d465845328484',
            'Accept-Encoding': 'gzip, deflate, br'
          },
          agents: { http: undefined, https: undefined },
          auth: undefined,
          beforeRedirect: [Function: dispatchBeforeRedirect],
          beforeRedirects: { proxy: [Function: beforeRedirect] },
          hostname: 'smumcdnems01.cdnsrv.jio.com',
          port: 443,
          agent: undefined,
          nativeProtocols: { 'http:': [Object], 'https:': [Object] },
          pathname: '/jiotvmblive.cdn.jio.com/Thanthi_TV/Thanthi_TV_800.m3u8',
          _defaultAgent: Agent {
            _events: [Object: null prototype],
            _eventsCount: 2,
            _maxListeners: undefined,
            defaultPort: 443,
            protocol: 'https:',
            options: [Object: null prototype],
            requests: [Object: null prototype] {},
            sockets: [Object: null prototype],
            freeSockets: [Object: null prototype] {},
            keepAliveMsecs: 1000,
            keepAlive: false,
            maxSockets: Infinity,
            maxFreeSockets: 256,
            scheduling: 'lifo',
            maxTotalSockets: Infinity,
            totalSocketCount: 1,
            maxCachedSessions: 100,
            _sessionCache: [Object],
            [Symbol(kCapture)]: false
          },
          host: 'smumcdnems01.cdnsrv.jio.com',
          noDelay: true,
          servername: 'smumcdnems01.cdnsrv.jio.com',
          _agentKey: 'smumcdnems01.cdnsrv.jio.com:443:::::::::::::::::::::',
          encoding: null,
          singleUse: true
        }
      },
      _header: 'GET /jiotvmblive.cdn.jio.com/Thanthi_TV/Thanthi_TV_800.m3u8 HTTP/1.1\r\n' +
        'Accept: */*\r\n' +
        'User-Agent: plaYtv/7.0.8 (Linux;Android 9) ExoPlayerLib/2.11.7\r\n' +
        'cookie: __hdnea__=st=1679849889~exp=1679936289~acl=/Thanthi_TV/*~hmac=6b9f2bdb471dd75e489039042f417a0318ff1e436fe7eec7ab1d465845328484\r\n' +
        'Accept-Encoding: gzip, deflate, br\r\n' +
        'Host: smumcdnems01.cdnsrv.jio.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: Agent {
        _events: [Object: null prototype] {
          free: [Function (anonymous)],
          newListener: [Function: maybeEnableKeylog]
        },
        _eventsCount: 2,
        _maxListeners: undefined,
        defaultPort: 443,
        protocol: 'https:',
        options: [Object: null prototype] { noDelay: true, path: null },
        requests: [Object: null prototype] {},
        sockets: [Object: null prototype] {
          'smumcdnems01.cdnsrv.jio.com:443:::::::::::::::::::::': [ [TLSSocket] ]
        },
        freeSockets: [Object: null prototype] {},
        keepAliveMsecs: 1000,
        keepAlive: false,
        maxSockets: Infinity,
        maxFreeSockets: 256,
        scheduling: 'lifo',
        maxTotalSockets: Infinity,
        totalSocketCount: 1,
        maxCachedSessions: 100,
        _sessionCache: {
          map: {
            'jiotvapi.media.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'jiotv.data.cdn.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'sptnaecdnems09.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'jiotvmblive.cdn.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'sldhncdnems01.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'smumcdnems01.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'slcknecdnems03.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'slckncdnems03.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'slcknecdnems02.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'slcknecdnems10.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'slcknecdnems06.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'slcknecdnems05.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'slcknecdnems04.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'slckncdnems02.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'snoidcdnems02.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'snoidcdnems01.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]],
            'sldhnecdnems02.cdnsrv.jio.com:443:::::::::::::::::::::': [Buffer [Uint8Array]]
          },
          list: [
            'jiotvapi.media.jio.com:443:::::::::::::::::::::',
            'jiotv.data.cdn.jio.com:443:::::::::::::::::::::',
            'sptnaecdnems09.cdnsrv.jio.com:443:::::::::::::::::::::',
            'jiotvmblive.cdn.jio.com:443:::::::::::::::::::::',
            'sldhncdnems01.cdnsrv.jio.com:443:::::::::::::::::::::',
            'smumcdnems01.cdnsrv.jio.com:443:::::::::::::::::::::',
            'slcknecdnems03.cdnsrv.jio.com:443:::::::::::::::::::::',
            'slckncdnems03.cdnsrv.jio.com:443:::::::::::::::::::::',
            'slcknecdnems02.cdnsrv.jio.com:443:::::::::::::::::::::',
            'slcknecdnems10.cdnsrv.jio.com:443:::::::::::::::::::::',
            'slcknecdnems06.cdnsrv.jio.com:443:::::::::::::::::::::',
            'slcknecdnems05.cdnsrv.jio.com:443:::::::::::::::::::::',
            'slcknecdnems04.cdnsrv.jio.com:443:::::::::::::::::::::',
            'slckncdnems02.cdnsrv.jio.com:443:::::::::::::::::::::',
            'snoidcdnems02.cdnsrv.jio.com:443:::::::::::::::::::::',
            'snoidcdnems01.cdnsrv.jio.com:443:::::::::::::::::::::',
            'sldhnecdnems02.cdnsrv.jio.com:443:::::::::::::::::::::'
          ]
        },
        [Symbol(kCapture)]: false
      },
      socketPath: undefined,
      method: 'GET',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/jiotvmblive.cdn.jio.com/Thanthi_TV/Thanthi_TV_800.m3u8',
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'smumcdnems01.cdnsrv.jio.com',
      protocol: 'https:',
      _redirectable: [Circular *3],
      [Symbol(kCapture)]: false,
      [Symbol(kBytesWritten)]: 0,
      [Symbol(kEndCalled)]: true,
      [Symbol(kNeedDrain)]: false,
      [Symbol(corked)]: 0,
      [Symbol(kOutHeaders)]: [Object: null prototype] {
        accept: [ 'Accept', '*/*' ],
        'user-agent': [
          'User-Agent',
          'plaYtv/7.0.8 (Linux;Android 9) ExoPlayerLib/2.11.7'
        ],
        cookie: [
          'cookie',
          '__hdnea__=st=1679849889~exp=1679936289~acl=/Thanthi_TV/*~hmac=6b9f2bdb471dd75e489039042f417a0318ff1e436fe7eec7ab1d465845328484'
        ],
        'accept-encoding': [ 'Accept-Encoding', 'gzip, deflate, br' ],
        host: [ 'Host', 'smumcdnems01.cdnsrv.jio.com' ]
      },
      [Symbol(errored)]: null,
      [Symbol(kUniqueHeaders)]: null
    },
    _currentUrl: 'https://smumcdnems01.cdnsrv.jio.com/jiotvmblive.cdn.jio.com/Thanthi_TV/Thanthi_TV_800.m3u8',
    [Symbol(kCapture)]: false
  },
  cause: Error: getaddrinfo ENOTFOUND smumcdnems01.cdnsrv.jio.com
      at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {
    errno: -3008,
    code: 'ENOTFOUND',
    syscall: 'getaddrinfo',
    hostname: 'smumcdnems01.cdnsrv.jio.com'
  }
}

Node.js v18.15.0

No audio for few the channels

Describe the bug
Mostly cartoons channels are not having any audio (Cartoon Network, Pogo, Nick...)

Expected behavior
Both audio & video should work

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser Chrome
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

feat: More quality

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
Add 1080p quality for streaming.

Describe alternatives you've considered

Additional context

none of channel is working

Describe the bug
I try to play channel but its not working neither the catchup working

Expected behavior
description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • OS: win 11
  • Browser chrome

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Sony channel not working fix the bug

Describe the bug
description of what the bug is.

Expected behavior
description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Docker container has no error but localhost:3500 doesn't load

Describe the bug
description of what the bug is.

Expected behavior
description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Handler.js not found.

I am executing this script on my windows laptop.
I have already installed nodejs.
Using start.bat in your package, I tried to run this script.
I got the error package 'express' and 'cors' are missing.
Using npm install commands, I have installed the packages
and
these package errors are gone.
again running start.bat, I am getting another error:
can not find module: JIOTVServer-main\build\handler.js' imported from JIOTVServer-main\index.js

There is no build folder in github repo and no handler.js file.
I checked index.js file and found that you are referring to handler.js on Line 18.
Kindly check and update the package.

Not working when it's installed in Android TV

Describe the bug
I installed it using termux in my Android smart TV but i unable to play channels in TiVimate as well as in browser. I logged in successfully using OTP. It's only showing loading icon.

Expected behavior
It should play channels in TiVimate as well as in Browser.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Android
  • Browser: Downloader
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

VPS

Is your feature request related to a problem? Please describe.
=> No
description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
description of what you want to happen.
=> How to Install on VPS and use it
I have VPS from AWS & Digital Ocean, if I install on any of the servers, how can I connect and watch on Android tv or Mac ? Can we generate m3u8 file and use it on devices at home ?

Describe alternatives you've considered
any alternative solutions or features you've considered.
=> No
Additional context
Add any other context or screenshots about the feature request here.
=> Can you please provide a detailed guide of setting it up on VPS

handler.js not found

Describe the bug
description of what the bug is.

Expected behavior
description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Want to run it on Linux PC

Is your feature request related to a problem? Please describe.
i dont have a spare phone to run it , but do have a pc linux (ubuntu based distro)

Describe the solution you'd like
tried running it but node module not seems to work on linux

Describe alternatives you've considered
dont have any

Not working

Stopped working for last two days. Login sucessful but channels not playing. Server throws error absolute url only supported. Tried relogin but same error

Quality degradation when streaming Zee Network channels on Samsung TV through IPTV app

Description:
When running the application server on my PC and streaming the playlist on my Samsung TV via IPTVplayerio, I've observed inconsistent video quality for channels from the Zee Network. Notably, when accessing the app directly through its Web UI, the streaming quality enhances rapidly. However, this does not seem to be the case when streaming on the TV.

Steps to Reproduce:

Start the application server on the PC.
Access the playlist on Samsung TV through IPTVplayerio.
Stream any channel from the Zee Network.
Observe the streaming quality.
Now, access the same channel through the Web UI of the app.
Compare the quality difference between both methods.

Expected Behavior:
Regardless of the method used to access the streaming content, the quality should consistently improve in a short amount of time, especially on the Samsung TV.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.