revert: fix(source): remove KinoGer

This reverts commit e5a5c62106.
This commit is contained in:
WebStreamr 2025-12-06 22:23:45 +00:00
parent 3be37008b7
commit 8dae887eca
No known key found for this signature in database
24 changed files with 8104 additions and 2 deletions

View file

@ -0,0 +1,48 @@
import { createTestContext } from '../test';
import { FetcherMock, ImdbId } from '../utils';
import { KinoGer } from './KinoGer';
const ctx = createTestContext({ de: 'on' });
describe('KinoGer', () => {
let source: KinoGer;
beforeEach(() => {
source = new KinoGer(new FetcherMock(`${__dirname}/__fixtures__/KinoGer`));
});
test('handles non-existent movies gracefully', async () => {
const streams = await source.handle(ctx, 'movie', new ImdbId('tt12345678', undefined, undefined));
expect(streams).toHaveLength(0);
});
test('handle non-existent episode gracefully', async () => {
const streams = await source.handle(ctx, 'series', new ImdbId('tt2085059', 99, 99));
expect(streams).toHaveLength(0);
});
test('handle imdb dead city s2e5', async () => {
const streams = await source.handle(ctx, 'series', new ImdbId('tt18546730', 2, 5));
expect(streams).toMatchSnapshot();
});
test('handle imdb dead city s2e6', async () => {
const streams = await source.handle(ctx, 'series', new ImdbId('tt18546730', 2, 6));
expect(streams).toMatchSnapshot();
});
test('handle missing episode imdb black mirror s3e4', async () => {
const streams = await source.handle(ctx, 'series', new ImdbId('tt2085059', 3, 4));
expect(streams).toMatchSnapshot();
});
test('handle no fsst via brokeback mountain', async () => {
const streams = await source.handle(ctx, 'series', new ImdbId('tt0388795', undefined, undefined));
expect(streams).toMatchSnapshot();
});
test('handle imdb blood and sinners', async () => {
const streams = await source.handle(ctx, 'series', new ImdbId('tt31193180', undefined, undefined));
expect(streams).toMatchSnapshot();
});
});

78
src/source/KinoGer.ts Normal file
View file

@ -0,0 +1,78 @@
import * as cheerio from 'cheerio';
import { ContentType } from 'stremio-addon-sdk';
import { Context, CountryCode } from '../types';
import { Fetcher, getTmdbId, getTmdbNameAndYear, Id } from '../utils';
import { Source, SourceResult } from './Source';
export class KinoGer extends Source {
public readonly id = 'kinoger';
public readonly label = 'KinoGer';
public readonly contentTypes: ContentType[] = ['movie', 'series'];
public readonly countryCodes: CountryCode[] = [CountryCode.de];
public readonly baseUrl = 'https://kinoger.com';
private readonly fetcher: Fetcher;
public constructor(fetcher: Fetcher) {
super();
this.fetcher = fetcher;
}
public async handleInternal(ctx: Context, _type: string, id: Id): Promise<SourceResult[]> {
const tmdbId = await getTmdbId(ctx, this.fetcher, id);
const [name, year] = await getTmdbNameAndYear(ctx, this.fetcher, tmdbId, 'de');
const pageUrl = await this.fetchPageUrl(ctx, name, year);
if (!pageUrl) {
return [];
}
const title = tmdbId.season ? `${name} ${tmdbId.season}x${tmdbId.episode}` : `${name} (${year})`;
const seasonIndex = (tmdbId.season ?? 1) - 1;
const episodeIndex = (tmdbId.episode ?? 1) - 1;
const html = await this.fetcher.text(ctx, pageUrl);
return Array.from(html.matchAll(/\.show\(.*/g))
.map(showJsMatch => this.findEpisodeUrlInShowJs(showJsMatch[0], seasonIndex, episodeIndex))
.filter((url): url is URL => url !== undefined && !['kinoger.be', 'kinoger.ru'].includes(url.host))
.map(url => ({ url, meta: { countryCodes: [CountryCode.de], referer: pageUrl.href, title } }));
};
private readonly findEpisodeUrlInShowJs = (showJs: string, seasonIndex: number, episodeIndex: number): URL | undefined => {
let episodeUrl: URL | undefined;
showJs.matchAll(/\[(.*?)]/g).forEach((urlsMatch, season) => {
if (season !== seasonIndex || !urlsMatch[1]) {
return;
}
const urlMatch = (urlsMatch[1].split(',')[episodeIndex] ?? '').match(/https?:\/\/[^\s'"<>]+/);
if (!urlMatch || urlMatch[0].includes('p2pplay.pro')) {
return;
}
episodeUrl = new URL(urlMatch[0]);
});
return episodeUrl;
};
private readonly fetchPageUrl = async (ctx: Context, keyword: string, year: number): Promise<URL | undefined> => {
const searchUrl = new URL(`/?do=search&subaction=search&titleonly=3&story=${encodeURIComponent(keyword)}&x=0&y=0&submit=submit`, this.baseUrl);
const html = await this.fetcher.text(ctx, searchUrl);
const $ = cheerio.load(html);
return $(`.title a:contains("${year}")`)
.map((_i, el) => new URL($(el).attr('href') as string, this.baseUrl))
.get(0);
};
}

View file

@ -0,0 +1 @@
{"movie_results":[{"backdrop_path":"/vXzqV2RtJlT9WhNEM4NYWCEC6ZI.jpg","id":142,"title":"Brokeback Mountain","original_title":"Brokeback Mountain","overview":"In 1960s Wyoming, two men develop a strong emotional and sexual relationship that endures as a lifelong connection complicating their lives as they get married and start families of their own.","poster_path":"/aByfQOQBNa4CMFwIgq3QrqY2ZHh.jpg","media_type":"movie","adult":false,"original_language":"en","genre_ids":[18,10749],"popularity":8.858,"release_date":"2005-10-22","video":false,"vote_average":7.8,"vote_count":7170}],"person_results":[],"tv_results":[],"tv_episode_results":[],"tv_season_results":[]}

View file

@ -0,0 +1 @@
{"movie_results":[{"backdrop_path":null,"id":1427398,"title":"Hold & Kick","original_title":"Hold & Kick","overview":"","poster_path":null,"media_type":"movie","adult":false,"original_language":"id","genre_ids":[],"popularity":0.0071,"release_date":"","video":false,"vote_average":0.0,"vote_count":0}],"person_results":[],"tv_results":[],"tv_episode_results":[],"tv_season_results":[]}

View file

@ -0,0 +1 @@
{"movie_results":[],"person_results":[],"tv_results":[{"backdrop_path":"/vV5LKWmuysEe5wsuZJGbdiL5XJ2.jpg","id":194583,"name":"The Walking Dead: Dead City","original_name":"The Walking Dead: Dead City","overview":"Maggie and Negan travel to post-apocalyptic Manhattan - long ago cut off from the mainland. The crumbling city is filled with the dead and denizens who have made it a world full of anarchy, danger, beauty, and terror.","poster_path":"/wq3vuQzQgbS83zX3malAFWMsSwX.jpg","media_type":"tv","adult":false,"original_language":"en","genre_ids":[10759,18,10765],"popularity":57.4446,"first_air_date":"2023-06-18","vote_average":8.0,"vote_count":609,"origin_country":["US"]}],"tv_episode_results":[],"tv_season_results":[]}

View file

@ -0,0 +1 @@
{"movie_results":[],"person_results":[],"tv_results":[{"backdrop_path":"/dg3OindVAGZBjlT3xYKqIAdukPL.jpg","id":42009,"name":"Black Mirror","original_name":"Black Mirror","overview":"Twisted tales run wild in this mind-bending anthology series that reveals humanity's worst traits, greatest innovations and more.","poster_path":"/seN6rRfN0I6n8iDXjlSMk1QjNcq.jpg","media_type":"tv","adult":false,"original_language":"en","genre_ids":[10765,18,9648],"popularity":75.5595,"first_air_date":"2011-12-04","vote_average":8.285,"vote_count":5530,"origin_country":["GB"]}],"tv_episode_results":[],"tv_season_results":[]}

View file

@ -0,0 +1 @@
{"movie_results":[{"backdrop_path":"/nAxGnGHOsfzufThz20zgmRwKur3.jpg","id":1233413,"title":"Sinners","original_title":"Sinners","overview":"Trying to leave their troubled lives behind, twin brothers return to their hometown to start again, only to discover that an even greater evil is waiting to welcome them back.","poster_path":"/jYfMTSiFFK7ffbY2lay4zyvTkEk.jpg","media_type":"movie","adult":false,"original_language":"en","genre_ids":[27,53],"popularity":333.1718,"release_date":"2025-04-16","video":false,"vote_average":7.553,"vote_count":1393}],"person_results":[],"tv_results":[],"tv_episode_results":[],"tv_season_results":[]}

View file

@ -0,0 +1 @@
{"adult":false,"backdrop_path":"/nAxGnGHOsfzufThz20zgmRwKur3.jpg","belongs_to_collection":{"id":1489663,"name":"Blood & Sinners Filmreihe","poster_path":"/48KYBYnHmt7ykX57zGuv6SXVZOO.jpg","backdrop_path":"/e0kl32U3pHA2cdR1VGRk5TUmrFr.jpg"},"budget":90000000,"genres":[{"id":27,"name":"Horror"},{"id":53,"name":"Thriller"}],"homepage":"https://www.warnerbros.de/filme/blood-sinners","id":1233413,"imdb_id":"tt31193180","origin_country":["US"],"original_language":"en","original_title":"Sinners","overview":"Beim Versuch, ihr von Problemen geplagtes Leben hinter sich zu lassen, kehren Zwillingsbrüder in ihre Heimatstadt zurück, um dort einen Neuanfang zu wagen. Doch schon bald müssen sie feststellen, dass bei ihrer Rückkehr ein noch größeres Übel auf sie wartet.","popularity":333.1718,"poster_path":"/445HsfnktkmM5y4cr62vYGzfo6h.jpg","production_companies":[{"id":174,"logo_path":"/zhD3hhtKB5qyv7ZeL4uLpNxgMVU.png","name":"Warner Bros. Pictures","origin_country":"US"},{"id":148495,"logo_path":"/2fQRDickgp9vuDIxJTlDLEs7j0y.png","name":"Proximity Media","origin_country":"US"},{"id":216687,"logo_path":"/kKVYqekveOvLK1IgqdJojLjQvtu.png","name":"Domain Entertainment","origin_country":"US"}],"production_countries":[{"iso_3166_1":"US","name":"United States of America"}],"release_date":"2025-04-16","revenue":357628506,"runtime":138,"spoken_languages":[{"english_name":"Mandarin","iso_639_1":"zh","name":"普通话"},{"english_name":"English","iso_639_1":"en","name":"English"}],"status":"Released","tagline":"Wenn du ständig mit dem Teufel tanzt, dann folgt er dir eines Tages nach Hause.","title":"Blood & Sinners","video":false,"vote_average":7.555,"vote_count":1390}

View file

@ -0,0 +1 @@
{"adult":false,"backdrop_path":null,"belongs_to_collection":null,"budget":16,"genres":[],"homepage":"","id":1427398,"imdb_id":"tt12345678","origin_country":["ID"],"original_language":"id","original_title":"Hold & Kick","overview":"","popularity":0.0071,"poster_path":null,"production_companies":[],"production_countries":[],"release_date":"","revenue":12,"runtime":0,"spoken_languages":[],"status":"Released","tagline":"","title":"Hold & Kick","video":false,"vote_average":0.0,"vote_count":0}

View file

@ -0,0 +1 @@
{"adult":false,"backdrop_path":"/vXzqV2RtJlT9WhNEM4NYWCEC6ZI.jpg","belongs_to_collection":null,"budget":14000000,"genres":[{"id":18,"name":"Drama"},{"id":10749,"name":"Liebesfilm"}],"homepage":"","id":142,"imdb_id":"tt0388795","origin_country":["US"],"original_language":"en","original_title":"Brokeback Mountain","overview":"Im Jahre 1963 treffen sie sich das erste Mal: die beiden Cowboys Ennis del Mar und Jack Twist. Auf einer Farm in Wyoming werden sie gemeinsam für den Besitzer dessen Schafe hüten. Einen Sommer lang, Tag für Tag, werden sie zusammen auf die Herde aufpassen und sich besser kennen lernen. Bald jedoch bemerken sie, dass sie mehr als die Tiere verbindet, denn sie verlieben sich ineinander. Doch ebenso schnell realisieren sie, dass ihre Liebe von niemandem akzeptiert würde und sie diese unter Verschluss halten müssten. Am Ende des Sommers werden alle Gedanken zerschlagen, da sich ihre Wege wieder trennen und sie versuchen müssen, ein Leben ohne den anderen zu führen. Beide heiraten, Jack die lebenslustige Lureen und Ennis Alma, woraufhin alles vergessen scheint. Erst Jahre später, immer noch nicht voneinander losgekommen, sehen sie sich wieder...","popularity":8.858,"poster_path":"/aByfQOQBNa4CMFwIgq3QrqY2ZHh.jpg","production_companies":[{"id":10146,"logo_path":"/xnFIOeq5cKw09kCWqV7foWDe4AA.png","name":"Focus Features","origin_country":"US"},{"id":1246,"logo_path":"/s0doRYEVWp3a4Y4Cg7R4fE9cwov.png","name":"River Road Entertainment","origin_country":"US"},{"id":3997,"logo_path":null,"name":"Alberta Film Entertainment","origin_country":"CA"}],"production_countries":[{"iso_3166_1":"CA","name":"Canada"},{"iso_3166_1":"US","name":"United States of America"}],"release_date":"2005-10-22","revenue":178043761,"runtime":129,"spoken_languages":[{"english_name":"English","iso_639_1":"en","name":"English"}],"status":"Released","tagline":"","title":"Brokeback Mountain","video":false,"vote_average":7.8,"vote_count":7170}

View file

@ -0,0 +1 @@
{"adult":false,"backdrop_path":"/vV5LKWmuysEe5wsuZJGbdiL5XJ2.jpg","created_by":[{"id":1639698,"credit_id":"6470a61e77070001367f1906","name":"Eli Jorné","original_name":"Eli Jorné","gender":2,"profile_path":null}],"episode_run_time":[],"first_air_date":"2023-06-18","genres":[{"id":10759,"name":"Action & Adventure"},{"id":18,"name":"Drama"},{"id":10765,"name":"Sci-Fi & Fantasy"}],"homepage":"https://www.amc.com/shows/the-walking-dead-dead-city--1060741","id":194583,"in_production":true,"languages":["en"],"last_air_date":"2025-06-08","last_episode_to_air":{"id":6104180,"name":"Bridgepartner sind knapp geworden","overview":"","vote_average":8.0,"vote_count":1,"air_date":"2025-06-08","episode_number":6,"episode_type":"standard","production_code":"","runtime":51,"season_number":2,"show_id":194583,"still_path":"/bOdN1xtiyIj3dik2jPVW4qbfcn6.jpg"},"name":"The Walking Dead: Dead City","next_episode_to_air":{"id":6104181,"name":"Neuer Tag, neuer Beginn","overview":"","vote_average":0.0,"vote_count":0,"air_date":"2025-06-15","episode_number":7,"episode_type":"standard","production_code":"","runtime":null,"season_number":2,"show_id":194583,"still_path":"/lT9LLpugclRs33r0Jpsv7XFLWFZ.jpg"},"networks":[{"id":174,"logo_path":"/pmvRmATOCaDykE6JrVoeYxlFHw3.png","name":"AMC","origin_country":"US"}],"number_of_episodes":14,"number_of_seasons":2,"origin_country":["US"],"original_language":"en","original_name":"The Walking Dead: Dead City","overview":"The Walking Dead: Dead City ist ein Spin-off der Horrorserie The Walking Dead. Darin reisen Negan und Maggie in das abgeschottete Manhattan. In New York City erwartet sie eine Welt der Anarchie, Gewalt und Gefahr voller Zombies und brutaler Überlebender.","popularity":57.4446,"poster_path":"/kIJasGleGYOsM9X3nGYviLEMm2t.jpg","production_companies":[{"id":23242,"logo_path":"/ucE6dN6pUPfZHH5JlXkq44TDUMS.png","name":"AMC Studios","origin_country":"US"},{"id":170794,"logo_path":null,"name":"Idiotbox","origin_country":"US"},{"id":50032,"logo_path":"/ojrMksdtR7Bs2vwERU1LCrjv7vx.png","name":"Skybound Entertainment","origin_country":"US"},{"id":73036,"logo_path":"/1gMrlkgIuNWkuigpF5EsCfkaczk.png","name":"Valhalla Entertainment","origin_country":"US"},{"id":23921,"logo_path":"/simDvqT8y6jhP530ggUMbikvVKc.png","name":"Circle of Confusion","origin_country":"US"},{"id":202564,"logo_path":null,"name":"Schneibot","origin_country":"US"}],"production_countries":[{"iso_3166_1":"US","name":"United States of America"}],"seasons":[{"air_date":"2023-06-01","episode_count":1,"id":341365,"name":"Extras","overview":"","poster_path":"/73EzQGC47r6bFh4jQQdNElW2JWJ.jpg","season_number":0,"vote_average":0.0},{"air_date":"2023-06-18","episode_count":6,"id":282384,"name":"Staffel 1","overview":"","poster_path":"/7gaq7sOWLa70fzUxdM21hf3RWP7.jpg","season_number":1,"vote_average":8.4},{"air_date":"2025-05-04","episode_count":8,"id":395922,"name":"Staffel 2","overview":"","poster_path":"/hCaPRoieLyKwo6XskzgPp5Q3XKo.jpg","season_number":2,"vote_average":7.0}],"spoken_languages":[{"english_name":"English","iso_639_1":"en","name":"English"}],"status":"Returning Series","tagline":"Behalte deine Feinde in der Nähe.","type":"Scripted","vote_average":8.0,"vote_count":609}

View file

@ -0,0 +1 @@
{"adult":false,"backdrop_path":"/dg3OindVAGZBjlT3xYKqIAdukPL.jpg","created_by":[{"id":211845,"credit_id":"52595fb5760ee346619587b5","name":"Charlie Brooker","original_name":"Charlie Brooker","gender":2,"profile_path":"/dmdLd5I4cnpCZzoITm26NOwu6Rn.jpg"}],"episode_run_time":[],"first_air_date":"2011-12-04","genres":[{"id":10765,"name":"Sci-Fi & Fantasy"},{"id":18,"name":"Drama"},{"id":9648,"name":"Mystery"}],"homepage":"https://www.netflix.com/title/70264888","id":42009,"in_production":true,"languages":["en"],"last_air_date":"2025-04-10","last_episode_to_air":{"id":6085099,"name":"USS Callister: Willkommen bei Infinity","overview":"Nanette Cole und die Crew der USS Callister stecken in einem unendlichen virtuellen Universum fest, wo sie gegen 30 Millionen Gamer ums Überleben kämpfen müssen.","vote_average":7.436,"vote_count":39,"air_date":"2025-04-10","episode_number":6,"episode_type":"finale","production_code":"","runtime":91,"season_number":7,"show_id":42009,"still_path":"/6JxoU4B1VMYf2tt8VPpNl8juKwm.jpg"},"name":"Black Mirror","next_episode_to_air":null,"networks":[{"id":26,"logo_path":"/hbifXPpM55B1fL5wPo7t72vzN78.png","name":"Channel 4","origin_country":"GB"},{"id":213,"logo_path":"/wwemzKWzjKYJFfCeiB57q3r4Bcm.png","name":"Netflix","origin_country":""}],"number_of_episodes":32,"number_of_seasons":7,"origin_country":["GB"],"original_language":"en","original_name":"Black Mirror","overview":"In dieser dystopischen Anthologieserie treffen die größten Innovationen der Menschheit auf ihre dunkelsten Eigenschaften.","popularity":75.5595,"poster_path":"/seN6rRfN0I6n8iDXjlSMk1QjNcq.jpg","production_companies":[{"id":76757,"logo_path":null,"name":"House of Tomorrow","origin_country":"GB"},{"id":18663,"logo_path":"/khiCshsZBdtUUYOr4VLoCtuqCEq.png","name":"Zeppotron","origin_country":"GB"},{"id":133905,"logo_path":"/tEEIQIYHQgPyOBgvoAlqPXfpEPX.png","name":"Broke and Bones","origin_country":"GB"}],"production_countries":[{"iso_3166_1":"GB","name":"United Kingdom"}],"seasons":[{"air_date":"2014-12-16","episode_count":1,"id":76596,"name":"Extras","overview":"","poster_path":"/zvfw0f35QmfHCPq5qvdHquFjrQC.jpg","season_number":0,"vote_average":0.0},{"air_date":"2011-12-04","episode_count":3,"id":51964,"name":"Staffel 1","overview":"In dieser Sci-Fi-Anthologieserie müssen die Menschen den Strom für ihre Existenz selbst generieren, erhalten Gedächtnisimplantate u. v. m.","poster_path":"/ztdy1f1cAjwsO0GpVKzNuqZ0PMv.jpg","season_number":1,"vote_average":7.7},{"air_date":"2013-02-11","episode_count":3,"id":51965,"name":"Staffel 2","overview":"Die 2. Staffel dieser Anthologieserie ist den dunklen Geschichten eines Social-Media-Junkies und der Teilnehmerin einer Live-Lebensshow gewidmet.","poster_path":"/y71DeJiAv0dV8H8hiFnuIuyc0Gx.jpg","season_number":2,"vote_average":7.1},{"air_date":"2016-10-21","episode_count":6,"id":63871,"name":"Staffel 3","overview":"Liebende treffen sich in einem surrealen Paradies, ein junger Mann wird von merkwürdigen SMS geplagt und eine Social-App übt beunruhigende Kräfte aus.","poster_path":"/3mKYrlZpFbpFu7CaVxoleO68MFG.jpg","season_number":3,"vote_average":7.7},{"air_date":"2017-12-29","episode_count":6,"id":96276,"name":"Staffel 4","overview":"Technik außer Rand und Band: Eine Fantasievorstellung gerät außer Kontrolle, Überwachungsgeräte enthüllen Geheimnisse und eine Frau flieht vor einem skrupellosen Jäger.","poster_path":"/zvLZvFU6RhdIPEH4afbUa4rmYtW.jpg","season_number":4,"vote_average":7.3},{"air_date":"2019-06-05","episode_count":3,"id":124320,"name":"Staffel 5","overview":"Ein Videospiel kann Freundschaften verändern. Eine Geiselnahme schockt einen Social-Media-Konzern. Eine Teenagerin freundet sich mit einer KI-Version ihres Popidols an.","poster_path":"/5xjf5aLeooPYWqH66vB80jMJT9u.jpg","season_number":5,"vote_average":6.5},{"air_date":"2023-06-15","episode_count":5,"id":331809,"name":"Staffel 6","overview":"Verdrehte Geschichten, die Epochen - und Schrecken - umspannen, bieten eine Vielzahl von Überraschungen in der bisher unvorhersehbarsten Staffel dieser bahnbrechenden Anthologie-Serie.","poster_path":"/kwATNh8JC1IJclnVwk8x7wZb2b4.jpg","season_number":6,"vote_average":6.4},{"air_date":"2025-04-09","episode_count":6,"id":383778,"name":"Staffel 7","overview":"","poster_path":"/aRN9LmPQHe8c1B2eR7MB3tiWFWk.jpg","season_number":7,"vote_average":7.1}],"spoken_languages":[{"english_name":"English","iso_639_1":"en","name":"English"}],"status":"Returning Series","tagline":"Die Zukunft ist schön","type":"Scripted","vote_average":8.285,"vote_count":5530}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,103 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`KinoGer handle imdb blood and sinners 1`] = `
[
{
"meta": {
"countryCodes": [
"de",
],
"referer": "https://kinoger.com/stream/18809-blood-sinners-stream.html",
"title": "Blood & Sinners (2025)",
},
"url": "https://fsst.online/embed/900576/",
},
{
"meta": {
"countryCodes": [
"de",
],
"referer": "https://kinoger.com/stream/18809-blood-sinners-stream.html",
"title": "Blood & Sinners (2025)",
},
"url": "https://kinoger.pw/e/6zeREaMlrqREZPa",
},
{
"meta": {
"countryCodes": [
"de",
],
"referer": "https://kinoger.com/stream/18809-blood-sinners-stream.html",
"title": "Blood & Sinners (2025)",
},
"url": "https://kinoger.re/#ge5fhb",
},
]
`;
exports[`KinoGer handle imdb dead city s2e5 1`] = `
[
{
"meta": {
"countryCodes": [
"de",
],
"referer": "https://kinoger.com/stream/12971-the-walking-dead-dead-city-stream.html",
"title": "The Walking Dead: Dead City 2x5",
},
"url": "https://supervideo.cc/e/bj6szat1pval",
},
{
"meta": {
"countryCodes": [
"de",
],
"referer": "https://kinoger.com/stream/12971-the-walking-dead-dead-city-stream.html",
"title": "The Walking Dead: Dead City 2x5",
},
"url": "https://kinoger.re/#x6tsx9",
},
]
`;
exports[`KinoGer handle imdb dead city s2e6 1`] = `
[
{
"meta": {
"countryCodes": [
"de",
],
"referer": "https://kinoger.com/stream/12971-the-walking-dead-dead-city-stream.html",
"title": "The Walking Dead: Dead City 2x6",
},
"url": "https://fsst.online/embed/901994/",
},
{
"meta": {
"countryCodes": [
"de",
],
"referer": "https://kinoger.com/stream/12971-the-walking-dead-dead-city-stream.html",
"title": "The Walking Dead: Dead City 2x6",
},
"url": "https://kinoger.re/#ep1tcf",
},
]
`;
exports[`KinoGer handle missing episode imdb black mirror s3e4 1`] = `[]`;
exports[`KinoGer handle no fsst via brokeback mountain 1`] = `
[
{
"meta": {
"countryCodes": [
"de",
],
"referer": "https://kinoger.com/stream/14781-brokeback-mountain-stream.html",
"title": "Brokeback Mountain (2005)",
},
"url": "https://dooodster.com/e/1cfcevn6dg8shrfvht22odxw2lty18hr",
},
]
`;

View file

@ -7,6 +7,7 @@ import { FourKHDHub } from './FourKHDHub';
import { Frembed } from './Frembed';
import { FrenchCloud } from './FrenchCloud';
import { HomeCine } from './HomeCine';
import { KinoGer } from './KinoGer';
import { Kokoshka } from './Kokoshka';
import { MegaKino } from './MegaKino';
import { MeineCloud } from './MeineCloud';
@ -38,6 +39,7 @@ export const createSources = (fetcher: Fetcher): Source[] => {
new VerHdLink(fetcher),
// DE
new Einschalten(fetcher),
new KinoGer(fetcher),
new MegaKino(fetcher),
new MeineCloud(fetcher),
new StreamKiste(fetcher),

View file

@ -21,7 +21,7 @@ exports[`buildManifest default manifest 1`] = `
},
{
"key": "de",
"title": "German 🇩🇪 (Einschalten, MegaKino, MeineCloud, StreamKiste)",
"title": "German 🇩🇪 (Einschalten, KinoGer, MegaKino, MeineCloud, StreamKiste)",
"type": "checkbox",
},
{
@ -81,7 +81,7 @@ exports[`buildManifest default manifest 1`] = `
Supported languages: Albanian, German, English, Castilian Spanish, French, Hindi, Italian, Latin American Spanish
Supported sources: 4KHDHub, VixSrc, Kokoshka, VidSrc, CineHDPlus, Cuevana, HomeCine, VerHdLink, Einschalten, MegaKino, MeineCloud, StreamKiste, Frembed, FrenchCloud, Movix, Eurostreaming, MostraGuarda
Supported sources: 4KHDHub, VixSrc, Kokoshka, VidSrc, CineHDPlus, Cuevana, HomeCine, VerHdLink, Einschalten, KinoGer, MegaKino, MeineCloud, StreamKiste, Frembed, FrenchCloud, Movix, Eurostreaming, MostraGuarda
Supported extractors: ",
"id": "webstreamr",