├── .gitignore
├── LICENSE
├── README.md
├── addon.js
├── ecosystem.config.js
├── favicon.ico
├── index.html
├── package.json
├── public
├── bg.jpg
├── bmc.png
├── configure.html
├── logo.png
├── logo_orig.png
└── redirect.png
├── server.js
└── utils
├── apiRetry.js
├── crypto.js
├── issueHandler.js
└── logger.js
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | node_modules/
3 | package-lock.json
4 |
5 | # Environment variables
6 | .env
7 |
8 | # Logs
9 | *.log
10 | logs/
11 |
12 | # IDE specific files
13 | .idea/
14 | .vscode/
15 | *.swp
16 | *.swo
17 | .DS_Store
18 |
19 | # Unnecessary files
20 | index.html
21 | howto.txt
22 |
23 | # Server specific
24 | monitor.sh
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 Thomas
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # Stremio AI Search
6 |
7 | An intelligent search addon for Stremio powered by Google's Gemini AI. Get personalized movie and TV series recommendations based on natural language queries.
8 |
9 |
10 |
11 | ## Features
12 |
13 | - Trakt integration to help Gemini suggest personalized recommendations. Note: Only searches starting with "Recommend" will provide personalized recommendations using your watch history from Trakt.
14 | - Select any of the Google AI models in the addon configuration
15 | - You can set the number of recommendations AI should return for a query
16 | - TMDB integration ensures you have a content rich catalog for movies and series
17 | - RPDB integration gives you access to awesome posters with inbuilt ratings
18 |
19 | ## Installation
20 |
21 | 1. Visit [Addon configuration](https://stremio.itcon.au/aisearch/configure)
22 | 2. Enter your API keys
23 | 3. Provide optional parameters
24 | 4. Install
25 | 5. Buy me a coffee :)
26 |
27 |
28 |
29 |
30 |
31 | ## Query ideas
32 |
33 | Here are some examples showing how versatile this addon is.
34 |
35 | ### Natural Language Queries
36 |
37 | - "A heartwarming comedy about family relationships"
38 | - "Critically acclaimed movies that flopped at the box office"
39 | - "Best period dramas set in the 1800s"
40 | - "Movies that take place in one night"
41 | - "If I liked Inception, what should I watch next?"
42 | - "Movies that feel like a Black Mirror episode"
43 | - "Movies based on Stephen King novels"
44 | - "Movies under 90 minutes long"
45 | - "Movies in the Spanish language"
46 | - "Movies set in Japan"
47 | - "Movies where the protagonist has a hidden identity"
48 | - "Movies where someone fakes their own death"
49 | - "Movies to watch with pizza & beer"
50 | - "Tell me a movie I've never heard of"
51 | - "What movie should I watch with my grandmother?"
52 |
53 | ### Time Periods
54 |
55 | - "Sci-fi movies from the 80s"
56 | - "Modern crime series from 2020-2023"
57 | - "Movies released in 1977"
58 | - "90s teen comedies"
59 | - "Films that captured the spirit of the 1960s counterculture"
60 | - "Movies set in the future but made before 2000"
61 | - "Best films of each decade from 1950-2020"
62 | - "Most influential films by year since 2000"
63 |
64 | ### Genre Combinations
65 |
66 | - "Best horror movies of all time"
67 | - "Action comedy with martial arts"
68 | - "Dark mystery thriller series"
69 | - "Best indie horror films post-2015"
70 | - "Sci-Fi Western crossovers"
71 | - "Blade Runner + Film Noir"
72 | - "Romantic comedies with supernatural elements"
73 | - "Historical dramas with elements of magical realism"
74 |
75 | ### Mood & Style
76 |
77 | - "Feel-good movies for a rainy day"
78 | - "Feel-good comedies for a lazy Sunday"
79 | - "Intense psychological thrillers"
80 | - "Dark psychological thrillers from the last 5 years"
81 | - "Movies to watch when I'm feeling nostalgic"
82 | - "Movies to make me feel inspired"
83 | - "Films that capture the feeling of summer nostalgia"
84 | - "Movies with a dreamlike atmosphere"
85 |
86 | ### Similarities
87 |
88 | - "Movies with crazy plot twists like The Sixth Sense"
89 | - "Non-linear storytelling like Memento"
90 | - "Road trip movies similar to Little Miss Sunshine"
91 | - "Animated films with the emotional depth of Inside Out"
92 | - "Movies with the same vibe as Lost in Translation"
93 |
94 | ### Franchise/Studio
95 |
96 | - "Movies by A24 Studio"
97 | - "Mission Impossible movies"
98 | - "Last 5 James Bond movies"
99 | - "Studio Ghibli films suitable for young children"
100 | - "Star Wars movies in chronological order"
101 | - "Horror franchises with the most sequels"
102 | - "Netflix original documentaries"
103 | - "Pixar movies with the best animation"
104 |
105 | ### By Director/Cast
106 |
107 | - "Underrated movies by Christopher Nolan"
108 | - "Best performances of Meryl Streep"
109 | - "Movies with Ryan Gosling and Emma Stone"
110 | - "Movies directed by female directors in the 2010s"
111 | - "Films where comedians play serious roles"
112 | - "Movies where the director also stars as the main character"
113 | - "Films featuring actors who won Oscars for their roles"
114 | - "Movies with ensemble casts"
115 |
116 | ### Thematic Searches
117 |
118 | - "Revenge movies with satisfying endings"
119 | - "Films about time travel that actually make sense"
120 | - "Movies where the protagonist is the villain"
121 | - "Films exploring the concept of memory"
122 | - "Movies about unlikely friendships across generations"
123 | - "Films that deal with grief in a meaningful way"
124 | - "Movies about redemption"
125 | - "Films that explore artificial intelligence"
126 |
127 | ### Exclusion Searches
128 |
129 | - "Horror movies NOT involving supernatural elements"
130 | - "Best movies NOT by Disney"
131 | - "Sci-fi films without aliens"
132 | - "Comedies that don't rely on crude humor"
133 | - "Action movies without gun violence"
134 | - "Thrillers without plot twists"
135 | - "Romance movies without love triangles"
136 | - "Disaster films that aren't about climate change"
137 |
138 | ### Maturity Rating
139 |
140 | - "R-rated comedies from the 2000s"
141 | - "Best PG movies for family movie night"
142 | - "NC-17 films that are critically acclaimed"
143 | - "G-rated movies that adults can enjoy too"
144 | - "PG-13 action movies with minimal violence"
145 | - "TV-MA series with complex storylines"
146 | - "Films that pushed the boundaries of their rating"
147 | - "Movies that were controversially rated"
148 |
149 | ### Cultural & Historical Context
150 |
151 | - "Movies that capture the essence of 1970s New York"
152 | - "Films that accurately portray historical events in Ancient Rome"
153 | - "Movies about the fall of the Berlin Wall"
154 | - "Series that explore post-Soviet Eastern Europe"
155 | - "Films about cultural revolutions around the world"
156 | - "Movies that defined Generation X"
157 | - "Films that captured the zeitgeist of their era"
158 | - "Historical events told from multiple perspectives"
159 |
160 | ### Technical & Cinematic Elements
161 |
162 | - "Movies with exceptional cinematography in natural landscapes"
163 | - "Films shot entirely in one take"
164 | - "Movies with innovative practical effects (no CGI)"
165 | - "Films with unreliable narrators"
166 | - "Movies with fourth wall breaks"
167 | - "Films with the most impressive long tracking shots"
168 | - "Movies with experimental editing techniques"
169 | - "Films with distinctive color palettes"
170 |
171 | ### Niche Combinations
172 |
173 | - "Sci-fi horror set underwater"
174 | - "Animated films for adults with philosophical themes"
175 | - "Mockumentaries about fictional musicians"
176 | - "Heist movies with female-led casts"
177 | - "Dystopian stories that don't involve teenagers"
178 | - "Comedies set in medieval times"
179 | - "Sports films that aren't about winning the big game"
180 | - "Romantic comedies with science fiction elements"
181 |
182 | ### Emotional Impact
183 |
184 | - "Movies that will make me ugly cry"
185 | - "Films that restore faith in humanity"
186 | - "Movies that will leave me thinking for days"
187 | - "Comfort films for anxiety"
188 | - "Movies that feel like a warm hug"
189 | - "Films that will help process grief"
190 | - "Movies with unexpected emotional depth"
191 | - "Films that changed people's worldviews"
192 |
193 | ### Situational
194 |
195 | - "Movies to watch after a breakup"
196 | - "Films perfect for a first date"
197 | - "Movies to watch when you can't sleep"
198 | - "Series to binge when sick in bed"
199 | - "Films that are better on second viewing"
200 | - "Movies to watch when you're home alone"
201 | - "Films to inspire a career change"
202 | - "Movies that pair well with specific foods"
203 |
204 | ### Unconventional Parameters
205 |
206 | - "Movies where the villain wins"
207 | - "Films with no dialogue for the first 15 minutes"
208 | - "Movies where the main character dies halfway through"
209 | - "Series where the setting is almost like another character"
210 | - "Films with ambiguous endings that leave you guessing"
211 | - "Movies that take place entirely in real-time"
212 | - "Films set entirely in one location"
213 | - "Movies told in reverse chronological order"
214 |
215 | ### Surprising & Unusual Queries
216 |
217 | - "Movies where the dog doesn't die"
218 | - "Films where food plays a central role"
219 | - "Movies that accurately portray computer hacking"
220 | - "Films where the twist is that there is no twist"
221 | - "Movies set entirely in elevators or confined spaces"
222 | - "Films where the soundtrack tells the story better than dialogue"
223 | - "Movies that predicted real-world technology or events"
224 | - "Films where the background extras are more interesting than the main plot"
225 | - "Movies that are secretly about capitalism"
226 | - "Films that work better if you watch them backwards"
227 | - "Movies where the opening scene is the best part"
228 | - "Films that were shot in your hometown but set somewhere else"
229 | - "Movies where the weather is practically a character"
230 | - "Films that are actually better when watched with commentary"
231 | - "Movies that are impossible to explain to someone else"
232 |
233 | ### International & Language-Specific
234 |
235 | - "Korean thrillers similar to Parasite"
236 | - "French romantic comedies from the last decade"
237 | - "Bollywood films that break traditional formulas"
238 | - "Japanese animated films not made by Studio Ghibli"
239 | - "Scandinavian crime dramas with female detectives"
240 | - "African cinema exploring post-colonial themes"
241 | - "Latin American magical realism films"
242 | - "Middle Eastern movies about everyday life"
243 |
244 | ### Experimental & Art House
245 |
246 | - "Surrealist films that aren't too pretentious"
247 | - "Experimental movies that are still accessible to casual viewers"
248 | - "Art house films with compelling narratives"
249 | - "Movies that blend animation with live action meaningfully"
250 | - "Films that play with color theory and visual symbolism"
251 | - "Avant-garde cinema that actually tells a story"
252 | - "Experimental documentaries with unique formats"
253 | - "Films that challenge conventional narrative structure"
254 |
255 | ### Runtime & Viewing Experience
256 |
257 | - "Best movies under 90 minutes"
258 | - "Epic films that justify their long runtime"
259 | - "Movies that feel shorter than they actually are"
260 | - "Films perfect for a movie marathon"
261 | - "Short films with powerful messages"
262 | - "Movies you can watch while doing something else"
263 | - "Films that demand your full attention"
264 | - "TV series with short episodes"
265 |
266 | ### Adaptation & Source Material
267 |
268 | - "Book-to-film adaptations that improved on the source"
269 | - "Comic book movies that pleased hardcore fans"
270 | - "Video game adaptations that actually worked"
271 | - "Films based on true stories that stayed accurate"
272 | - "Movies that are better than the books they're based on"
273 | - "TV shows expanded from short films"
274 | - "Adaptations that completely changed the source material"
275 | - "Films based on obscure source material"
276 |
277 | ## Ranking Options
278 |
279 | ### Chronological Rankings
280 |
281 | - "Star Wars movies ranked by release date"
282 | - "Oscar winners for Best Picture ranked by year"
283 | - "Horror franchises ranked by longevity"
284 | - "Animated films ranked from oldest to newest"
285 | - "Movie adaptations ranked by time between book and film release"
286 | - "Film series ranked by consistency across decades"
287 |
288 | ### Rating-Based Rankings
289 |
290 | - "Highest IMDB rated movies of all time"
291 | - "Rotten Tomatoes' freshest horror films"
292 | - "Movies with the biggest gap between critic and audience scores"
293 | - "Films with perfect Metacritic scores"
294 | - "Highest-grossing movies adjusted for inflation"
295 | - "Cult classics with the lowest initial ratings"
296 | - "Movies that won the most Academy Awards"
297 | - "Films that swept all major award categories"
298 |
299 | ### Studio/Production Company Rankings
300 |
301 | - "Disney animated films ranked by box office success"
302 | - "Marvel movies ranked by critical reception"
303 | - "Netflix original series ranked by viewer ratings"
304 | - "HBO shows ranked by cultural impact"
305 | - "Blumhouse horror films ranked by scariness"
306 | - "Dreamworks animations ranked by humor"
307 | - "A24 films ranked by artistic merit"
308 | - "Warner Bros. franchises ranked by longevity"
309 |
310 | ### Director-Based Rankings
311 |
312 | - "Christopher Nolan films ranked by complexity"
313 | - "Quentin Tarantino movies ranked by dialogue quality"
314 | - "Steven Spielberg films ranked by historical accuracy"
315 | - "Martin Scorsese gangster films ranked by realism"
316 | - "Wes Anderson movies ranked by visual style"
317 | - "David Fincher thrillers ranked by plot twists"
318 | - "Greta Gerwig films ranked by feminist themes"
319 | - "Denis Villeneuve sci-fi movies ranked by visual effects"
320 |
321 | ### Actor Performance Rankings
322 |
323 | - "Tom Hanks roles ranked by dramatic range"
324 | - "Meryl Streep performances ranked by accent accuracy"
325 | - "Leonardo DiCaprio films ranked by physical transformation"
326 | - "Viola Davis performances ranked by emotional intensity"
327 | - "Jim Carrey comedies ranked by physical comedy"
328 | - "Daniel Day-Lewis roles ranked by method acting commitment"
329 | - "Cate Blanchett performances ranked by character complexity"
330 | - "Denzel Washington films ranked by monologue power"
331 |
332 | ### Technical Achievement Rankings
333 |
334 | - "Movies ranked by innovative cinematography techniques"
335 | - "Films ranked by practical effects excellence"
336 | - "Movies ranked by sound design innovation"
337 | - "Films ranked by editing complexity"
338 | - "Movies ranked by costume design authenticity"
339 | - "Films ranked by makeup transformation quality"
340 | - "Movies ranked by long-take difficulty"
341 | - "Films ranked by musical score memorability"
342 |
343 | ### Cultural Impact Rankings
344 |
345 | - "Sci-fi movies ranked by influence on real technology"
346 | - "Films ranked by quotability in popular culture"
347 | - "Movies ranked by meme generation"
348 | - "Films ranked by fashion trend influence"
349 | - "Movies ranked by political controversy caused"
350 | - "Films ranked by tourism impact on filming locations"
351 | - "Movies ranked by merchandise sales"
352 | - "Films ranked by academic study frequency"
353 |
354 | ### Audience Response Rankings
355 |
356 | - "Horror movies ranked by jump scare effectiveness"
357 | - "Comedies ranked by laugh-out-loud moments"
358 | - "Dramas ranked by tear-jerking scenes"
359 | - "Thrillers ranked by plot twist unexpectedness"
360 | - "Action movies ranked by audience adrenaline"
361 | - "Romances ranked by chemistry between leads"
362 | - "Documentaries ranked by mind-changing potential"
363 | - "Animated films ranked by adult appeal"
364 |
365 | ### Niche and Specific Rankings
366 |
367 | - "Disaster movies ranked by scientific accuracy"
368 | - "Heist films ranked by plan complexity"
369 | - "Superhero movies ranked by villain memorability"
370 | - "Time travel films ranked by paradox avoidance"
371 | - "Zombie movies ranked by survival strategy realism"
372 | - "Spy films ranked by gadget innovation"
373 | - "Sports movies ranked by inspirational speeches"
374 | - "Courtroom dramas ranked by legal accuracy"
375 |
376 | ### Budget & Box Office Rankings
377 |
378 | - "Highest ROI movies of all time"
379 | - "Blockbusters ranked by budget efficiency"
380 | - "Low-budget films with the biggest cultural impact"
381 | - "Movies that bombed financially but became classics"
382 | - "Highest-grossing independent films"
383 | - "Films that saved their studios from bankruptcy"
384 | - "Most expensive movies that flopped at the box office"
385 | - "Franchises ranked by average box office performance"
386 |
387 | ### Unconventional Rankings
388 |
389 | - "Movies ranked by rewatchability factor"
390 | - "Films ranked by 'so bad it's good' quality"
391 | - "Movies ranked by unexpected cameos"
392 | - "Films ranked by background detail richness"
393 | - "Movies ranked by fan theory generation"
394 | - "Films ranked by director's cut improvement"
395 | - "Movies ranked by soundtrack sales"
396 | - "Films ranked by sequel potential"
397 |
398 | ### Popularity Shift Rankings
399 |
400 | - "Movies that gained cult status years after release"
401 | - "Films that were ahead of their time"
402 | - "Initially panned movies now considered masterpieces"
403 | - "Critically acclaimed films that audiences hated"
404 | - "Movies whose reputation improved with director's cuts"
405 | - "Films that launched trends in cinema"
406 | - "Movies that killed their franchises"
407 | - "Forgotten classics deserving rediscovery"
408 |
409 | ## Self Hosting
410 |
411 | ### Environment Variables
412 |
413 | When self-hosting the addon, you can configure the following environment variables in a `.env` file:
414 |
415 | - `TRAKT_CLIENT_ID` - Your Trakt API client ID
416 | - `TRAKT_CLIENT_SECRET` - Your Trakt API client secret
417 | - `ENCRYPTION_KEY` - Key used for encrypting sensitive configuration data
418 | - `RPDB_API_KEY` - API key for RPDB integration
419 | - `ENABLE_LOGGING` - Set to "true" to enable logging
420 | - `GITHUB_TOKEN` - GitHub token for issue submission
421 | - `RECAPTCHA_SECRET_KEY` - Secret key for reCAPTCHA
422 | - `ADMIN_TOKEN` - Token required for accessing cache management endpoints (new)
423 |
424 | ### Admin Endpoints
425 |
426 | The addon provides several administrative endpoints for cache management. All endpoints require an admin token which should be set in the `.env` file as `ADMIN_TOKEN`.
427 |
428 | ### Cache Management
429 |
430 | All endpoints are GET requests and require the `adminToken` as a query parameter. You can run any of these endpoints directly in your browser.
431 |
432 | #### Cache Statistics
433 |
434 | ```bash
435 | GET https://stremio.itcon.au/aisearch/cache/stats?adminToken=your-admin-token
436 | ```
437 |
438 | #### AI Cache Management
439 |
440 | ```bash
441 | # Clear all AI cache
442 | GET https://stremio.itcon.au/aisearch/cache/clear/ai?adminToken=your-admin-token
443 |
444 | # Remove specific AI cache entries by keywords
445 | GET https://stremio.itcon.au/aisearch/cache/clear/ai/keywords?adminToken=your-admin-token&keywords=ocean%20thriller
446 | ```
447 |
448 | #### TMDB Cache Management
449 |
450 | ```bash
451 | # Clear TMDB cache
452 | GET https://stremio.itcon.au/aisearch/cache/clear/tmdb?adminToken=your-admin-token
453 |
454 | # Clear TMDB details cache
455 | GET https://stremio.itcon.au/aisearch/cache/clear/tmdb-details?adminToken=your-admin-token
456 |
457 | # Clear TMDB discover cache
458 | GET https://stremio.itcon.au/aisearch/cache/clear/tmdb-discover?adminToken=your-admin-token
459 |
460 | # List all TMDB discover cache keys
461 | GET https://stremio.itcon.au/aisearch/cache/list/tmdb-discover?adminToken=your-admin-token
462 |
463 | # Remove a specific TMDB discover cache item
464 | GET https://stremio.itcon.au/aisearch/cache/remove/tmdb-discover?key=discover_series_80_2023-09-01_en-US&adminToken=your-admin-token
465 | ```
466 |
467 | #### Other Cache Management
468 |
469 | ```bash
470 | # Clear RPDB cache
471 | GET https://stremio.itcon.au/aisearch/cache/clear/rpdb?adminToken=your-admin-token
472 |
473 | # Clear Trakt cache
474 | GET https://stremio.itcon.au/aisearch/cache/clear/trakt?adminToken=your-admin-token
475 |
476 | # Clear Trakt raw data cache
477 | GET https://stremio.itcon.au/aisearch/cache/clear/trakt-raw?adminToken=your-admin-token
478 |
479 | # Clear query analysis cache
480 | GET https://stremio.itcon.au/aisearch/cache/clear/query-analysis?adminToken=your-admin-token
481 |
482 | # Clear all caches
483 | GET https://stremio.itcon.au/aisearch/cache/clear/all?adminToken=your-admin-token
484 |
485 | # Save all caches to files
486 | GET https://stremio.itcon.au/aisearch/cache/save?adminToken=your-admin-token
487 | ```
488 |
489 | ### Example Usage
490 |
491 | You can use these endpoints directly in your browser by visiting:
492 |
493 | ```
494 | https://stremio.itcon.au/aisearch/cache/clear/ai?adminToken=your-admin-token
495 | https://stremio.itcon.au/aisearch/cache/clear/ai/keywords?adminToken=your-admin-token&keywords=your search terms
496 | https://stremio.itcon.au/aisearch/cache/list/tmdb-discover?adminToken=your-admin-token
497 | https://stremio.itcon.au/aisearch/cache/remove/tmdb-discover?key=discover_series_80_2023-09-01_en-US&adminToken=your-admin-token
498 | https://stremio.itcon.au/aisearch/cache/clear/all?adminToken=your-admin-token
499 | ```
500 |
501 | ### Response Examples
502 |
503 | **Keywords-based cache removal response:**
504 |
505 | ```json
506 | {
507 | "removed": 2,
508 | "entries": [
509 | {
510 | "key": "ocean thriller_movie_no_trakt",
511 | "timestamp": "2024-03-20T12:34:56.789Z",
512 | "query": "ocean thriller"
513 | }
514 | ]
515 | }
516 | ```
517 |
518 | **TMDB discover cache list response:**
519 |
520 | ```json
521 | {
522 | "success": true,
523 | "count": 3,
524 | "keys": [
525 | "discover_series_80_2023-09-01_en-US",
526 | "discover_movie_28_2024-01-01_en-US",
527 | "discover_series_18_2023-03-01_en-US"
528 | ]
529 | }
530 | ```
531 |
532 | **TMDB discover cache item removal response:**
533 |
534 | ```json
535 | {
536 | "success": true,
537 | "message": "Cache item removed successfully",
538 | "key": "discover_series_80_2023-09-01_en-US"
539 | }
540 | ```
541 |
542 | **General cache clearing response:**
543 |
544 | ```json
545 | {
546 | "cleared": true,
547 | "previousSize": 42
548 | }
549 | ```
550 |
551 | **Clear all caches response:**
552 |
553 | ```json
554 | {
555 | "tmdb": { "cleared": true, "previousSize": 15 },
556 | "tmdbDetails": { "cleared": true, "previousSize": 10 },
557 | "tmdbDiscover": { "cleared": true, "previousSize": 8 },
558 | "ai": { "cleared": true, "previousSize": 42 },
559 | "rpdb": { "cleared": true, "previousSize": 8 },
560 | "trakt": { "cleared": true, "previousSize": 12 },
561 | "traktRaw": { "cleared": true, "previousSize": 5 },
562 | "queryAnalysis": { "cleared": true, "previousSize": 20 }
563 | }
564 | ```
565 |
--------------------------------------------------------------------------------
/ecosystem.config.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 |
3 | module.exports = {
4 | apps: [
5 | {
6 | name: "stremio-ai-addon",
7 | script: "./server.js",
8 | cwd: ".",
9 | env: {
10 | NODE_ENV: "production",
11 | PORT: 7000,
12 | HOST: "0.0.0.0",
13 | },
14 | max_memory_restart: "999M", // Restart if memory exceeds 300MB
15 | instances: 1, // Changed to 1 instance to avoid port conflicts
16 | exec_mode: "fork", // Changed to fork mode
17 | log_date_format: "YYYY-MM-DD HH:mm:ss [Australia/Melbourne]",
18 | error_file: "./logs/error.log",
19 | out_file: "./logs/out.log",
20 | merge_logs: true,
21 | autorestart: true, // Auto restart if app crashes
22 | restart_delay: 4000, // Delay between automatic restarts
23 | max_restarts: 10, // Number of times to restart before stopping
24 | exp_backoff_restart_delay: 100, // Delay between restarts
25 | min_uptime: "30s",
26 | listen_timeout: 8000,
27 | kill_timeout: 5000,
28 | },
29 | ],
30 | };
31 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/itcon-pty-au/stremio-ai-search/3ed435f06694a9d6091076e2adfe1de904524b2b/favicon.ico
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Stremio AI Search
5 |
6 |
150 |
151 |
152 |
153 |
154 |
Stremio AI Search
155 |
156 |
157 | An intelligent search addon for Stremio powered by Google's Gemini AI.
158 | Get personalized movie and TV series recommendations based on natural
159 | language queries.
160 |
161 |
162 |
163 |
Example Searches
164 |
165 |
166 |
Natural Language
167 |
168 | "A heartwarming comedy about family relationships"
169 |
170 |
171 | Search using natural language descriptions of what you want to
172 | watch.
173 |
174 |
175 |
176 |
177 |
Time Periods
178 |
"Sci-fi movies from the 80s"
179 |
"Modern crime series from 2020-2023"
180 |
Specify time periods or years for more targeted results.