├── .gitattributes ├── internal ├── appletv │ ├── templates │ │ ├── channel.xml │ │ ├── error.xml │ │ ├── logs.xml │ │ ├── base.xml │ │ ├── search.xml │ │ ├── player.xml │ │ ├── reload-channels.xml │ │ ├── main.xml │ │ ├── category.xml │ │ ├── favorites.xml │ │ ├── bag.plist │ │ ├── recent.xml │ │ ├── search-results.xml │ │ ├── channel-options.xml │ │ ├── locales │ │ │ └── en-US.json │ │ ├── channels.xml │ │ └── settings.xml │ ├── xml.go │ └── appletv.go ├── server │ ├── assets │ │ ├── images │ │ │ ├── settings.png │ │ │ ├── missing_logo.png │ │ │ ├── no_favorites.png │ │ │ └── no_recents.png │ │ ├── custom.js │ │ └── application.js │ └── server.go ├── m3u │ ├── logo.go │ ├── m3u.go │ └── models.go ├── logging │ └── logging.go └── config │ └── config.go ├── sample ├── certs │ ├── redbulltv.cer │ ├── redbulltv.key │ └── redbulltv.pem ├── config.yaml └── sample.m3u ├── go.mod ├── .vscode └── launch.json ├── .editorconfig ├── .github └── workflows │ ├── build.yaml │ └── publish.yaml ├── main.go ├── go.sum ├── LICENSE ├── Makefile ├── .gitignore └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf -------------------------------------------------------------------------------- /internal/appletv/templates/channel.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sample/certs/redbulltv.cer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghokun/appletv3-iptv/HEAD/sample/certs/redbulltv.cer -------------------------------------------------------------------------------- /internal/server/assets/images/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghokun/appletv3-iptv/HEAD/internal/server/assets/images/settings.png -------------------------------------------------------------------------------- /internal/server/assets/images/missing_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghokun/appletv3-iptv/HEAD/internal/server/assets/images/missing_logo.png -------------------------------------------------------------------------------- /internal/server/assets/images/no_favorites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghokun/appletv3-iptv/HEAD/internal/server/assets/images/no_favorites.png -------------------------------------------------------------------------------- /internal/server/assets/images/no_recents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghokun/appletv3-iptv/HEAD/internal/server/assets/images/no_recents.png -------------------------------------------------------------------------------- /internal/appletv/templates/error.xml: -------------------------------------------------------------------------------- 1 | {{ define "body" -}} 2 | 3 | {{ .Data.Title }} 4 | {{ .Data.Description }} 5 | 6 | {{- end }} -------------------------------------------------------------------------------- /internal/appletv/templates/logs.xml: -------------------------------------------------------------------------------- 1 | {{ define "body" -}} 2 | 3 | {{ index .Translations "settings.menu.trouble.logs.title" }} 4 | 5 | 6 | {{- end }} -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/ghokun/appletv3-iptv 2 | 3 | go 1.16 4 | 5 | require ( 6 | github.com/google/uuid v1.2.0 7 | github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 8 | golang.org/x/text v0.3.5 9 | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b 10 | ) 11 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Debug appletv3-iptv", 6 | "type": "go", 7 | "request": "launch", 8 | "mode": "debug", 9 | "program": "${workspaceFolder}/main.go" 10 | } 11 | ] 12 | } -------------------------------------------------------------------------------- /sample/config.yaml: -------------------------------------------------------------------------------- 1 | m3uPath: ../sample/sample.m3u 2 | httpPort: "80" 3 | httpsPort: "443" 4 | cerPath: ../sample/certs/redbulltv.cer 5 | pemPath: ../sample/certs/redbulltv.pem 6 | keyPath: ../sample/certs/redbulltv.key 7 | logToFile: true 8 | loggingPath: log 9 | recents: [] 10 | favorites: [] 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://EditorConfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | trim_trailing_whitespace = true 10 | 11 | [*.go] 12 | indent_style = tab 13 | indent_size = 4 14 | 15 | [Makefile] 16 | indent_style = tab 17 | indent_size = 8 -------------------------------------------------------------------------------- /internal/appletv/templates/base.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |