{"id":18561902,"url":"https://github.com/sir-go/iptv-playlist","last_synced_at":"2026-03-16T17:36:43.722Z","repository":{"id":144671947,"uuid":"545220130","full_name":"sir-go/iptv-playlist","owner":"sir-go","description":"m3u and xspf playlists generator","archived":false,"fork":false,"pushed_at":"2024-08-12T06:12:55.000Z","size":60035,"stargazers_count":3,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-28T13:49:38.348Z","etag":null,"topics":["docker","docker-compose","go","iptv","m3u","mysql","nginx-proxy","xspf"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sir-go.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-04T01:41:27.000Z","updated_at":"2024-11-11T08:18:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"86958fb0-4bb2-41a1-8e5d-ce553d9fdc02","html_url":"https://github.com/sir-go/iptv-playlist","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sir-go/iptv-playlist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sir-go%2Fiptv-playlist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sir-go%2Fiptv-playlist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sir-go%2Fiptv-playlist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sir-go%2Fiptv-playlist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sir-go","download_url":"https://codeload.github.com/sir-go/iptv-playlist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sir-go%2Fiptv-playlist/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266590567,"owners_count":23952960,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","go","iptv","m3u","mysql","nginx-proxy","xspf"],"created_at":"2024-11-06T22:08:12.737Z","updated_at":"2026-03-16T17:36:43.669Z","avatar_url":"https://github.com/sir-go.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IPTV playlists generator\n[![Go](https://github.com/sir-go/iptv-playlist/actions/workflows/go.yml/badge.svg)](https://github.com/sir-go/iptv-playlist/actions/workflows/go.yml)\n\n\u003e Production:\n\u003e \n\u003e m3u unicast: http://iptv.ttnet.ru/pl.m3u\n\u003e \n\u003e m3u multicast: http://iptv.ttnet.ru/pl.m3u\n\u003e\n\u003e xspf unicast: http://iptv.ttnet.ru/pl.xspf\n\u003e \n\u003e xspf multicast: http://iptv.ttnet.ru/pl.xspf\n\n## How it works\n- the service has four endpoints for `m3u` and `xspf` formats for `unicast` and `multicast` streaming servers\n- data stores in the MySQL database\n- each handler generates and returns a playlist file in the certain format\n\nlogo images store at the same host in `static/logo/%s.png` files and updates by an operator manually via FTP\n\n## Configuration\nConfiguration file `config.yml` (can be set in the `-c` running option) contains:\n```yaml\nservice:\n  port: 8081         # backend running port\n\ndb:                  # database connection\n  host: iptv-db      # db server host\n  port: 3306         # port\n  user: root         # username (root in the test composer)\n  password:          # db password\n  dbname: iptv       # db name\n\nplaylist:                                   # playlist generation options\n  templates:\n    m3u: /opt/templates/m3u.tmpl            # m3u template\n    xspf: /opt/templates/xspf.tmpl          # xspf template\n  unicast_url: http://localhost:8000        # streaming url for unicast playlist\n\n```\n\n## Test\nRun `docker compose` with testing `mysql` before\n```bash\ndocker compose up -d\ngo test -v ./cmd/plgen\ngosec ./...\n```\n\n## Docker\n```bash\ndocker build -t iptv-back .\ndocker run --rm -it -p 8081:8081 --name iptv-back -v ${PWD}/config.yml:/opt/config.yml:ro iptv-back:latest\n```\n\n## Standalone\n```bash\ngo mod download\ngo build -o plgen ./cmd/plgen\n\n./plgen -c config.yml\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsir-go%2Fiptv-playlist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsir-go%2Fiptv-playlist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsir-go%2Fiptv-playlist/lists"}