M3U Restream Rumi, November 15, 2022 There’s a wonderful piece of microservice node.js based restream utility, that let you re-stream from a source and also do the ffmped transcoding if you’d like. I just liked the piece! My installed OS was Ubuntu 18.x and I used node version 12.x. The problem You have an IPTV provider that provides an (extended) M3U playlist file. You want to: Add HTTPS encryption to the streams (and probably move the unencrypted reception offsite). Transcode the streams to a lower bitrate, or convert to a uniform video or audio format. The solution Run this software, preferably on an offsite host. It only requires a Node installation (No NPM modules are required!). To add HTTPS support, front it with nginx (or similar). Getting it to run Basic steps to get it running: Install NodeJS via a mechanism of your choice. Clone the repo. Copy restream-cfg-example.json to restream-cfg.json. Edit restream-cfg.json. See the section below for more details. Run node restream.js There is no built-in daemon support, I recommend to run it in screen or use a daemonizer like start-stop-daemon. Point your client software to http://<ip>:<port>/channels. This is the playlist URL for the default transcoding profile. To address another profile, use the profile URL parameter, like http://<ip>:<port>/channels?profile=mobile. It is recommended to front the proxy with nginx to enable HTTPS. See the section on nginx below. Configuration options extUrl: The base URL that your proxy is reachable as, for example https://my.offsite.server/iptv/. m3uSrc: The M3U URL from your IPTV provider. Will usually contain username and password as URL parameters. port: TCP listening port that the proxy will use. numWorkers: Amount of streaming workers to spawn. Since this proxy is designed for single clients, they are only needed when switching channels. Three are enough. blacklist: A list of regular expression strings matching program names that you want filtered from the M3U list. Useful for skipping on crap that you don’t want. profiles: Transcoding profiles. At least one profile called default must be present. Each profile has three sub-options: contentType: The content type that is advertised for the resulting stream. Usually video/mp2t. transcoder: Transcoder binary to spawn. If you want no transcoding, use /bin/cat. Otherwise, you’ll probably use ffmpeg. Whatever you use, it must be set up to read video from STDIN and output video to STDOUT. transcoderOpts: Array of command-line options for the transcoder. The transcoder is spawned without a shell, so no escaping is needed. Nginx setup (recommended, optional) In any server (hopefully SSL-enabled), pick a path location for your IPTV service, and link the proxy in like this: location /iptv/ { proxy_pass http://127.0.0.1:3666/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; } Here, the URL path is /iptv/ and the proxy port is 3666. That’s all. I just uploaded the restream source which can be downloaded from here: iptv-m3u-restream-master Related Application Configurations (Linux) IPTVM3UNode.jsRestreamUbuntuUbuntu 18
Creating Custom Built Debian 6 (Squeeze) May 24, 2013May 24, 2013 There is a well documented official way to create standard Debian CDs. However, sometimes it is nice to have a CD or DVD which just contains a subset of Debian Packages to fit personal needs. The following script is made for creation of such a CD image. By default, it… Read More
A small tweek in MySQL Data path in Linux using webmin June 12, 2008 By default all database and data are stored in /var/lib/mysql But whenever, you’re planning to setup a virtual hosted server, it is wise to set up and configure this db to be set up in some different bigger disk space. Like I use to place this data path to /home/mysql… Read More
Howto add fonts on openSuSE 10.2 – how to install new fonts in SuSE 10.2 January 24, 2010 On a SuSE 10.2 system – fonts are in: /usr/share/fonts/ Copy your new fonts into one of the already existing sub-folders depending on type of fonts to be added, then run in consol: /usr/sbin/fonts-config To finalize the activation of your newly installed fonts you need to restart your X-server Ctrl… Read More
Good afternoon, I’ve been trying to setup this script for a few days now. I can see the channels load, but, I can’t see the restream m3u. I’m running Kubuntu 23.04. This looks like it’s perfect for what I need it for, unfortunately, I just can’t get it to work. Would you be able to please help me? Thank you and have a nice day Reply
You can get the playlist using like following format- http://:3666/channels.m3u8 Notice- channels.m3u8 its the playlist generator of restream Reply