@stremio/stremio-video 0.0.10 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stremio/stremio-video",
3
- "version": "0.0.10",
3
+ "version": "0.0.14",
4
4
  "description": "Abstraction layer on top of different media players",
5
5
  "author": "Smart Code OOD",
6
6
  "main": "src/index.js",
@@ -16,7 +16,7 @@
16
16
  "deep-freeze": "0.0.1",
17
17
  "eventemitter3": "4.0.7",
18
18
  "hat": "0.0.3",
19
- "hls.js": "1.0.10",
19
+ "hls.js": "https://github.com/Stremio/hls.js/releases/download/v1.0.10-patch2/hls.js-1.0.10-patch2.tgz",
20
20
  "lodash.clonedeep": "4.5.0",
21
21
  "magnet-uri": "6.2.0",
22
22
  "url": "0.11.0",
@@ -1,9 +1,14 @@
1
1
  module.exports = {
2
+ debug: false,
3
+ enableWorker: true,
4
+ lowLatencyMode: false,
2
5
  backBufferLength: 30,
3
6
  maxBufferLength: 50,
4
7
  maxMaxBufferLength: 80,
8
+ maxFragLookUpTolerance: 0,
9
+ maxBufferHole: 0,
5
10
  appendErrorMaxRetry: 20,
6
- nudgeMaxRetry: 10,
11
+ nudgeMaxRetry: 20,
7
12
  manifestLoadingTimeOut: 30000,
8
13
  manifestLoadingMaxRetry: 10,
9
14
  // liveDurationInfinity: false
@@ -96,34 +96,47 @@ function withStreamingServer(Video) {
96
96
  onPropChanged('stream');
97
97
  convertStream(commandArgs.streamingServerURL, commandArgs.stream, commandArgs.seriesInfo)
98
98
  .then(function(mediaURL) {
99
- var id = hat();
100
- var queryParams = new URLSearchParams([['mediaURL', mediaURL]]);
101
- if (commandArgs.forceTranscoding) {
102
- queryParams.set('forceTranscoding', '1');
103
- }
104
- if (commandArgs.audioChannels !== null && isFinite(commandArgs.audioChannels)) {
105
- queryParams.set('audioChannels', commandArgs.audioChannels);
106
- }
99
+ return (commandArgs.forceTranscoding ? Promise.resolve(false) : Video.canPlayStream({ url: mediaURL }))
100
+ .catch(function(error) {
101
+ console.warn('Media probe error', error);
102
+ return false;
103
+ })
104
+ .then(function(canPlay) {
105
+ if (canPlay) {
106
+ return {
107
+ url: mediaURL
108
+ };
109
+ }
107
110
 
108
- return {
109
- url: url.resolve(commandArgs.streamingServerURL, '/hlsv2/' + id + '/master.m3u8?' + queryParams.toString()),
110
- subtitles: Array.isArray(commandArgs.stream.subtitles) ?
111
- commandArgs.stream.subtitles.map(function(track) {
112
- return Object.assign({}, track, {
113
- url: typeof track.url === 'string' ?
114
- url.resolve(commandArgs.streamingServerURL, '/subtitles.vtt?' + new URLSearchParams([['from', track.url]]).toString())
115
- :
116
- track.url
117
- });
118
- })
119
- :
120
- [],
121
- behaviorHints: {
122
- headers: {
123
- 'content-type': 'application/vnd.apple.mpegurl'
111
+ var id = hat();
112
+ var queryParams = new URLSearchParams([['mediaURL', mediaURL]]);
113
+ if (commandArgs.forceTranscoding) {
114
+ queryParams.set('forceTranscoding', '1');
124
115
  }
125
- }
126
- };
116
+ if (commandArgs.audioChannels !== null && isFinite(commandArgs.audioChannels)) {
117
+ queryParams.set('audioChannels', commandArgs.audioChannels);
118
+ }
119
+
120
+ return {
121
+ url: url.resolve(commandArgs.streamingServerURL, '/hlsv2/' + id + '/master.m3u8?' + queryParams.toString()),
122
+ subtitles: Array.isArray(commandArgs.stream.subtitles) ?
123
+ commandArgs.stream.subtitles.map(function(track) {
124
+ return Object.assign({}, track, {
125
+ url: typeof track.url === 'string' ?
126
+ url.resolve(commandArgs.streamingServerURL, '/subtitles.vtt?' + new URLSearchParams([['from', track.url]]).toString())
127
+ :
128
+ track.url
129
+ });
130
+ })
131
+ :
132
+ [],
133
+ behaviorHints: {
134
+ headers: {
135
+ 'content-type': 'application/vnd.apple.mpegurl'
136
+ }
137
+ }
138
+ };
139
+ });
127
140
  })
128
141
  .then(function(stream) {
129
142
  if (commandArgs !== loadArgs) {