# m3u-proxy

> Process/simplify and potentially serve M3U & EPG files from your IPTV provider(s)

Latest version **1.0.1** (published 2021-03-17) · MIT license · 0 weekly downloads

## Install

```sh
npm install m3u-proxy
pnpm add m3u-proxy
yarn add m3u-proxy
bun add m3u-proxy
```

Provides the command `m3u-proxy`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2021-03-17 |
| First published | 2021-02-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=10 |
| Dependencies | 5 |
| Unpacked size | 12.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 20 |
| Author | Ben Michaud |
| Maintainers | tigersway |
| Keywords | m3u, epg, xmltv, nodejs |

## Links

- npm: https://www.npmjs.com/package/m3u-proxy
- Repository: https://github.com/TigersWay/m3u-proxy
- Homepage: https://github.com/TigersWay/m3u-proxy#readme
- Issues: https://github.com/TigersWay/m3u-proxy/issues
- npm.io page: https://npm.io/package/m3u-proxy

## Dependencies (5)

- [debug](https://npm.io/package/debug.md) ^4.1.1
- [byline](https://npm.io/package/byline.md) ^5.0.0
- [xml-flow](https://npm.io/package/xml-flow.md) ^1.0.4
- [simple-get](https://npm.io/package/simple-get.md) ^4.0.0
- [command-line-args](https://npm.io/package/command-line-args.md) ^5.1.1

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 1.0.1 (latest) — 2021-03-17
- 1.0.0 — 2021-02-16

## README

# m3u-proxy

Process/simplify and potentially serve M3U &amp; EPG files from your IPTV provider(s).

![GitHub package.json version](https://img.shields.io/github/package-json/v/tigersway/m3u-proxy?style=flat-square) ![GitHub last commit](https://img.shields.io/github/last-commit/tigersway/m3u-proxy?style=flat-square)

## Configuration

```json
{
  "importFolder": "./imports",
  "exportFolder": "/var/www/html/iptv",
  "minutesBetweenImports": "360",
  "sources": [
    {
      "name": "MyProvider",
      "m3u": "http://url-of-my-stream-provider/streams.m3u",
      "models": [
        {
          "name": "",
          "filters": [
            {
              "field": "group-title",
              "regex": "UK .*|USA .*"
            }
          ],
          "transformations": [
            {
              "field": "group-title",
              "regex": "(UK|USA).*",
              "substitution": "$1"
            },
            {
              "field": "tvg-name",
              "regex": "(.*?) *: *(.*)",
              "substitution": "$1: $2"
            }
          ]
        }
      ],
      "epg": "http://url-of-my-guide-provider/xmltv.xml"
    }
  ]
}

```
- **importFolder**: Destination folder for all imports.
- **exportFolder**: Destination folder for all exports.
- **minutesBetweenImports**: Not yet available.
- **name**: Prefix for export filenames: downloadable files are <name\><model\>.m3u & <name\>.xml.
- **m3u**: Original url for the M3U file.
- **epg**: Original url the the guide/xmltv file.
- **filters**: Combined, they Allow to select only some of the channels.
- **transformations**: Each of them will transform a field of the channel details.

## Running
`node .\m3u-proxy.js`

### Arguments (v0.4.0+)
You can specify a custom config.json file location by using `-c` or `--config` command line arguments

`node .\m3u-proxy.js -c ~/.m3u-proxy/config.json`

`node .\m3u-proxy.js --config ~/.m3u-proxy/config.json`

---
_Source: https://npm.io/package/m3u-proxy · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
