Giter Club home page Giter Club logo

waar-streamen's Introduction

waar-streamen

A web app to search for movies and series on (mainly flemish/dutch) streaming services supported by a custom backend. Data returned by the server might not be correct, this is solely because the streaming services don't report the correct data themselves. (f.e.: language is falsely reported as 'en' by GoPlay on dutch programs)

Supported streaming services

  • GoPlay
    • Language is not always (correctly) reported
  • VTM GO
    • Language is not always reported
  • Streamz
    • Language is not always reported
  • VRT MAX
    • Language is never reported
  • NPO Start

The backend is written in TypeScript using the NestJS framework. It uses a lru in memory cache to reduce load nad not make unnecessary requests. Adding new streaming services is also very easy, just create a new service that implements the Retriever interface and add it to the SearchModule and the RetrieverManager.

You can choose how deep you want the backend to search for data about a program. A variable fetchDepth is used to determine this. This variable can have 3 values (shallow, deep or full) which will all yield different data for every streaming platform. f.e.: shallow might only return the title and an image that is not poster size for VTM GO, while deep will add a description, language and a poster sized image and maybe some data about available seasons and episodes. full should even go deeper and retrieve all available episedes. GoPlay will however contain all data by just using deep causse its backend returns more wanted data

The default values for this variable is shallow to reduce the load on the server. Depending on your query this parameter can make a big difference. Estimates are:

  • shallow (~ 250ms) : 1 request per streaming service
  • deep (~ 600ms) : possible extra request(s) per program/movies found
  • full (> 1s): even more requests per program are possible
    • !! This can take a long time if your query is too broad !!

Frontend SvelteKit (https://waar-streamen.nasaj.be/)

A mobile-first web app written in Svelte/Typescript, that provides a UI for the NestJs backend. The app is deployed on Vervel.

waar-streamen's People

Contributors

belgiannoise avatar

waar-streamen's Issues

Find REST API endpoints instead of HTML scraping

The following services are queried using web scraping:

  • GoPlay: deep episode scraping only
  • VTM GO
  • Streamz (same as VTM GO)

The following services are queried using GraphQL which I genuinly don't know how to use, nor debug lol:

  • VRT MAX

The goal is to find REST APIs to make fetching data easier. Preferably unauthenticated since the Cloud Run instance this runs on might scales down to zero and might lose auth state :/

For inspiration:

  • Check out the network tab in the dev tools
  • SSL Proxy request from the mobile app to find endpoints only used on mobile
  • Check how this is handled in the Kodi plugins, which should be opensourced

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.