Spaces:
Runtime error
Runtime error
Upload 2 files
Browse files- index.js +65 -0
- package.json +17 -0
index.js
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const { addonBuilder, serveHTTP, publishToCentral } = require('stremio-addon-sdk')
|
2 |
+
|
3 |
+
const builder = new addonBuilder({
|
4 |
+
id: 'org.torflix',
|
5 |
+
version: '1.0.0',
|
6 |
+
name: 'Torflix Addon',
|
7 |
+
// Properties that determine when Stremio picks this addon
|
8 |
+
// this means your addon will be used for streams of the type movie
|
9 |
+
catalogs: [],
|
10 |
+
resources: ['stream'],
|
11 |
+
types: ['movie'],
|
12 |
+
idPrefixes: ['tt']
|
13 |
+
})
|
14 |
+
|
15 |
+
// takes function(args)
|
16 |
+
builder.defineStreamHandler(async function (args) {
|
17 |
+
if (args.type === 'movie'
|
18 |
+
// && args.id === 'tt1254207'
|
19 |
+
) {
|
20 |
+
|
21 |
+
const movieId = args.id;
|
22 |
+
|
23 |
+
var url = `https://torrentio.strem.fun/sort=seeders%7Clanguage=hindi/stream/movie/${movieId}.json`;
|
24 |
+
var streams = await fetch(url).then(res => res.json()).then(data => data.streams);
|
25 |
+
streams.forEach(stream => {
|
26 |
+
// name: 'Torflix\n1080p',
|
27 |
+
// title: 'Abigail.2024.1080p.DS4K.AMZN.WEBRip.DD .5.1.X265-Ralphy [ProtonMovies]\n' +
|
28 |
+
// '👤 6 💾 3.13 GB ⚙️ 1337x',
|
29 |
+
// fileIdx: 0,
|
30 |
+
// behaviorHints: {
|
31 |
+
// bingeGroup: 'torrentio|1080p|WEBRip|x265',
|
32 |
+
// filename: 'Abigail.2024.1080p.DS4K.AMZN.WEBRip.DD+.5.1.X265-Ralphy.mkv'
|
33 |
+
// },
|
34 |
+
// url: 'https://seedr.torrentdevbkn.workers.dev/directStream?infoHash=23a536e7b3dff5b57bd20bf70ec43f3ba063ffa1'
|
35 |
+
|
36 |
+
//drop infoHash from the stream object
|
37 |
+
stream.name = stream.name.replace('Torrentio', 'Torflix');
|
38 |
+
stream.url = `https://seedr.torrentdev.workers.dev/directStream?infoHash=${stream.infoHash}`;
|
39 |
+
delete stream.infoHash;
|
40 |
+
|
41 |
+
//allow only if size < 4 GB
|
42 |
+
var size = stream.title.match(/💾 ([\d.]+) GB/);
|
43 |
+
if (size && parseFloat(size[1]) > 4) {
|
44 |
+
streams = streams.filter(s => s !== stream);
|
45 |
+
}
|
46 |
+
|
47 |
+
});
|
48 |
+
|
49 |
+
console.log(streams);
|
50 |
+
|
51 |
+
return Promise.resolve({ streams: streams });
|
52 |
+
//fetch the torrentio api
|
53 |
+
|
54 |
+
|
55 |
+
// serve one stream to big buck bunny
|
56 |
+
// const stream = { url: 'http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4' }
|
57 |
+
// return Promise.resolve({ streams: [stream] })
|
58 |
+
} else {
|
59 |
+
// otherwise return no streams
|
60 |
+
return Promise.resolve({ streams: [] })
|
61 |
+
}
|
62 |
+
})
|
63 |
+
|
64 |
+
serveHTTP(builder.getInterface(), { port: process.env.PORT || 7000 })
|
65 |
+
//publishToCentral("https://your-domain/manifest.json") // <- invoke this if you want to publish your addon and it's accessible publically on "your-domain"
|
package.json
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"dependencies": {
|
3 |
+
"axios": "^1.7.2",
|
4 |
+
"nodemon": "^3.1.4",
|
5 |
+
"stremio-addon-sdk": "^1.6.10"
|
6 |
+
},
|
7 |
+
"name": "torflix_streamio",
|
8 |
+
"version": "1.0.0",
|
9 |
+
"main": "index.js",
|
10 |
+
"scripts": {
|
11 |
+
"start": "nodemon index.js",
|
12 |
+
"test": "echo \"Error: no test specified\" && exit 1"
|
13 |
+
},
|
14 |
+
"author": "",
|
15 |
+
"license": "ISC",
|
16 |
+
"description": ""
|
17 |
+
}
|