Simple example script that receives the signal from one iptv channel and relays it via websocket to another server to replicate the stream to multiple players

Overview

Retransmissão de canal IPTV

Script simples de exemplo que recebe o sinal de um canal iptv e retransmite ele via websocket para que outro servidor faça a replicação da stream para múltiplos players via HTTP

Qual a motivação para criar esse script?

  • Estava eu assistindo iptv e me veio à mente que era chato não poder compartilhar um canal iptv para outras pessoas usando o meu login
  • Então criei esse script na tentativa de replicar o sinal de um canal que gosto para múltiplos players

Porque usar 2 scripts (client e server) ao invés de embutir tudo em um único script?

  • Minha ideia inicial era usar um único script que rodasse no servidor. esse script iria fazer o request do canal iptv, e retransmitir ele para os players que solicitassem. Porém em meus testes, percebi que os servidores de IPTV bloqueiam requisições vindas de IPs "gringos", ou de IPs atrelados a VPS/Cloud. Então a minha solução foi desmembrar o script em 2, assim o client faz o request do sinal iptv direto da minha internet domestica e retransmite essa stream para o script servidor rodando em uma VPS qualquer. Dessa forma o servidor se encarrega de replicar o sinal para os players.

Quais outras aplicações desse projeto?

  • Transmitir a imagem de uma câmera IP local para um servidor em nuvem e posteriormente essa imagem ser acessada por múltiplos players ou mesmo para que um computador remoto receba a stream e armazene em arquivos.
  • Transmitir arquivos grandes via websocket para múltiplos computadores em rede (necessita adaptações maiores)
  • Transmitir um filme hospedado online para vários usuários (necessita adaptações)

O que esse projeto NÃO FAZ?

  • Esse projeto não converte a stream em vídeo diretamente
  • Esse projeto não pirateia sinal de TV
  • Esse projeto não transmite múltiplos canais (ou uma lista M3U completa)
  • Esse projeto não é estritamente para transmissão de vídeo, apesar de ser possível fazer isso.
  • A única coisa que esse projeto faz é receber os dados de uma fonte HTTP e retransmitir ela para outro servidor e posteriormente para outros clientes (esses dados podem ser arquivos ou mesmo streaming de video HTTP/RTSP/Outro)

Esquema visual de funcionamento

esquema de funcionamento

Em funcionamento compartilhando o canal IPTV

exemplo de funcionamento

  • No exemplo acima, o script server está hospedado em uma VPS Oracle BR (distante de mim). o script client está em meu computador. mesmo abrindo 3 players simultâneos, não percebi travamento na transmissão vinda do servidor remoto, o que indica que a transmissão de saída (script client) está fluida e sem engasgos
  • Obviamente podem ocorrer engasgos dependendo da qualidade da internet local onde o client está rodando. Porém todo o processo usou pouca banda para as transmissões.

Como usar?

  • Clone esse projeto em seu computador.
  • Instale as dependencias com npm.
  • Execute o ws_server.js (fazendo as modificações de acordo com os comentários no código)
  • Depois execute o ws_client.js (fazendo as modificações de acordo com os comentários no código)
  • Você verá o ws_client.js começando a transmitir para o ws_server.js ( e o ws_server.js recebendo a stream)
  • Acesse o endereço do servidor /multi e (se tudo ocorrer bem) seu navegador/player irá iniciar o recebimento dos dados

...

  • Esse projeto não incentiva pirataria! é APENAS para fins didáticos e de aprendizado sobre streams, websocket e transmissões http Desenvolvido com Node.JS
You might also like...

🤖 Kaixin (Bot Always Stay in Channel)

 🤖 Kaixin (Bot Always Stay in Channel)

🤖 Kaixin (Bot Always Stay in Channel) this is a bot kaixin open source code.

Jan 20, 2022

▶️ Deskreen Youtube channel (video tutorials, demos, use cases for Deskreen day to day usage)

▶️ Deskreen Youtube channel (video tutorials, demos, use cases for Deskreen day to day usage)

▶️ Deskreen Youtube channel (video tutorials, demos, use cases for Deskreen day to day usage)

Jan 31, 2022

🤖 NODE.TS - Play a welcome sound every time someone joins the voice channel, meme bot. (Olha ele ae)

welcome2voice-bot 🤖 NODE.TS - Play a welcome sound every time someone joins the voice channel. 🤖 INVITE-ME 🤖 Installation Clone project git clone g

Feb 23, 2022

When new tokens gets listed on a DEX, bots are able to detect this and be one of the first to buy the token for a low price. This is an example of such bot.

When new tokens gets listed on a DEX, bots are able to detect this and be one of the first to buy the token for a low price. This is an example of such bot.

Listing Sniping Bot When a new token gets listed on a DEX, bots are able to detect the PairCreated event emitted from the DEX's factory contract. This

Dec 21, 2022

Home Assistant custom component for viewing IP cameras RTSP stream in real time using WebRTC technology

Home Assistant custom component for viewing IP cameras RTSP stream in real time using WebRTC technology

Home Assistant custom component for viewing IP cameras RTSP stream in real time using WebRTC technology

Jan 4, 2023

Swaps video ads for an ad-free stream.

Swaps video ads for an ad-free stream.

VideoAdBlockForTwitch This video adblock for Twitch extension will swap Twitch video ads for an ad-free version of the stream at 480p and then automat

Jan 2, 2023

HTML5 fmp4 live stream (ll-fmp4) player written in TypeScript

umataste HTML5 fmp4 live stream (ll-fmp4) player written in TypeScript Feature Playback for fmp4 stream Extremely low latency of less than 0.1 second

Oct 21, 2022

Automatically stream lo-fi hiphop at system startup on the Lofipi

Lofipi-mpv This runs as a system service on Raspberry Pi inside my "lofipi" speaker to automatically stream music from YouTube playlists on startup. F

Nov 15, 2022

Audio visualizer library for javascript. Create dynamic animations that react to an audio file or audio stream.

Wave.js Audio visualizer library for javascript. Installation Install With CDN script src="https://cdn.jsdelivr.net/gh/foobar404/wave.js/dist/bundle.

Dec 21, 2022
Owner
Ericky Thierry
desenvolvedor: python: {Flask, Selenium Web Driver} javascript => {express.js, node.js} Linux ./ (ubuntu/debian, shellscript) Docker - (compose, portainer)
Ericky Thierry
A IPTV Reader/Player that used NodeJS and some libraries

IPTVReader A IPTV Reader/Player that used NodeJS and some libraries How to use Clone this repo/Download as ZIP and extract. Go to folder you stored th

CookieGMVN 5 Jul 22, 2022
MyTV is a web-based IPTV UI for your TV Box (embedded device what streams video to TV)

MyTV is a web-based IPTV UI for your TV Box (embedded device what streams video to TV). Features Console for debug Load a playlist Live a TV channel A

Henry Barreto 6 Oct 7, 2022
MyTV is a web-based IPTV UI for your TV Box (embedded device what streams video to TV)

MyTV is a web-based IPTV UI for your TV Box (embedded device what streams video to TV). Features Console for debug Load a playlist Live a TV channel A

Henry Barreto 5 Sep 10, 2022
This provides the channel of the anonymous ojosama salon for your server.

?? 匿名希望お嬢様Bot 匿名希望お嬢様Botはojosamaを利用したお嬢様口調の匿名サロンを実現しますわ!! ⚠️ ワーニング 注意事項を必ずお読みいただき、同意した上でお使いください。 注意事項に違反した使い方は製作者の意図した使い方ではなく、発生した損害・法的責任は利用者が責任を追うものと

null 4 Nov 13, 2022
This bot can raise your mood. This bot send joke often our channel for users. Sometimes bot don't work because we have not server for this project...)

Hi, welcome to send-joke-bot telegram bot project ?? What can do this bot ? This bot can raise your mood. This bot send joke often our channel for use

Muhammadamin 5 Sep 26, 2022
A multipurpose bot, a clan bot, a all in one bot. The one bot u need for ur server originally made as Milrato discord Bot and by Tomato6966.

Public Bot and Support Server! Invite the Public Version of this Bot so you don't need to host it by yourself or join my Discord server to get a custo

Tomato6966 472 Dec 25, 2022
An simple package to create an Activity in Discord Voice Channel using Discord.js

discordjs-activity An simple package to create an Activity in Discord Voice Channel using Discord.js ?? | Installation npm install discordjs-activity

Sudhan 55 Nov 15, 2022
Link your position on a mcbe server to a discord voice. The sound changes according to the distance to the nearest players.

DiscordLink Link your position on a mcbe server to a discord voice. The sound changes according to the distance to the nearest players. Credits - No I

MaXoooZ 1 May 28, 2022
A NodeJS package for voice channel interactions on Revolt. This package lets you join voice channels, play music and more!

Revoice.js - A Voice Module for Revolt This package is still in developement and lacks many features. You still are able to play sound to a voice chan

ShadowLp174 13 Dec 25, 2022
Discord-Bot - You can use the discord bot codes that are updated in every video of the codes I use in the discord bot making series that I have published on my youtube channel.

Discord-Bot You can use the discord bot codes that are updated in every video of the codes I use in the discord bot making series that I have publishe

Umut Bayraktar 114 Jan 3, 2023