{"id":29111982,"url":"https://github.com/xgfone/go-hls","last_synced_at":"2025-06-29T10:03:27.726Z","repository":{"id":297564978,"uuid":"996890949","full_name":"xgfone/go-hls","owner":"xgfone","description":"An golang implementation of RFC8216 HLS.","archived":false,"fork":false,"pushed_at":"2025-06-06T05:11:01.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-06T06:20:17.010Z","etag":null,"topics":["hls","http-live-streaming","m3u8","rfc-8216","rfc8216","ts"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xgfone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2025-06-05T16:09:49.000Z","updated_at":"2025-06-06T05:12:07.000Z","dependencies_parsed_at":"2025-06-06T06:31:34.133Z","dependency_job_id":null,"html_url":"https://github.com/xgfone/go-hls","commit_stats":null,"previous_names":["xgfone/go-hls"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xgfone/go-hls","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xgfone%2Fgo-hls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xgfone%2Fgo-hls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xgfone%2Fgo-hls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xgfone%2Fgo-hls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xgfone","download_url":"https://codeload.github.com/xgfone/go-hls/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xgfone%2Fgo-hls/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262574127,"owners_count":23330778,"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","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":["hls","http-live-streaming","m3u8","rfc-8216","rfc8216","ts"],"created_at":"2025-06-29T10:03:26.654Z","updated_at":"2025-06-29T10:03:27.708Z","avatar_url":"https://github.com/xgfone.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Golang RFC8216 HLS\n\n[![Build Status](https://github.com/xgfone/go-hls/actions/workflows/go.yml/badge.svg)](https://github.com/xgfone/go-hls/actions/workflows/go.yml)\n[![GoDoc](https://pkg.go.dev/badge/github.com/xgfone/go-hls)](https://pkg.go.dev/github.com/xgfone/go-hls)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square)](https://raw.githubusercontent.com/xgfone/go-hls/master/LICENSE)\n![Minimum Go Version](https://img.shields.io/github/go-mod/go-version/xgfone/go-hls?label=Go%2B)\n![Latest SemVer](https://img.shields.io/github/v/tag/xgfone/go-hls?sort=semver)\n\nAn golang implementation of RFC8216 HLS.\n\n## Install\n\n```shell\n$ go get -u github.com/xgfone/go-hls\n```\n\n## PlayList Tags\n\n- **Basic Tags** [RFC 8216, 4.3.1](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.1)\n  - [x] `#EXTM3U` [RFC 8216, 4.3.1.1](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.1.1)\n  - [x] `#EXT-X-VERSION` [RFC 8216, 4.3.1.2](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.1.2)\n- **Media Segment Tags** [RFC 8216, 4.3.2](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.2)\n  - [x] `#EXTINF` [RFC 8216, 4.3.2.1](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.2.1)\n  - [x] `#EXT-X-BYTERANGE` [RFC 8216, 4.3.2.2](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.2.2)\n  - [x] `#EXT-X-DISCONTINUITY` [RFC 8216, 4.3.2.3](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.2.3)\n  - [x] `#EXT-X-KEY` [RFC 8216, 4.3.2.4](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.2.4)\n  - [x] `#EXT-X-MAP` [RFC 8216, 4.3.2.5](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.2.5)\n  - [x] `#EXT-X-PROGRAM-DATE-TIME` [RFC 8216, 4.3.2.6](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.2.6)\n  - [ ] `#EXT-X-DATERANGE` [RFC 8216, 4.3.2.7](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.2.7)\n- **Media Playlist Tags** [RFC 8216, 4.3.3](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.3)\n  - [x] `#EXT-X-TARGETDURATION` [RFC 8216, 4.3.3.1](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.3.1)\n  - [x] `#EXT-X-MEDIA-SEQUENCE` [RFC 8216, 4.3.3.2](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.3.2)\n  - [x] `#EXT-X-DISCONTINUITY-SEQUENCE` [RFC 8216, 4.3.3.3](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.3.3)\n  - [x] `#EXT-X-ENDLIST` [RFC 8216, 4.3.3.4](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.3.4)\n  - [x] `#EXT-X-PLAYLIST-TYPE` [RFC 8216, 4.3.3.5](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.3.5)\n  - [x] `#EXT-X-I-FRAMES-ONLY` [RFC 8216, 4.3.3.6](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.3.6)\n- **Master Playlist Tags** [RFC 8216, 4.3.4](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.4)\n  - [x] `#EXT-X-MEDIA` [RFC 8216, 4.3.4.1](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.4.1)\n  - [x] `#EXT-X-STREAM-INF` [RFC 8216, 4.3.4.2](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.4.2)\n  - [x] `#EXT-X-I-FRAME-STREAM-INF` [RFC 8216, 4.3.4.3](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.4.3)\n  - [x] `#EXT-X-SESSION-DATA` [RFC 8216, 4.3.4.4](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.4.4)\n  - [x] `#EXT-X-SESSION-KEY` [RFC 8216, 4.3.4.5](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.4.5)\n- **Media or Master Playlist Tags** [RFC 8216, 4.3.5](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.5)\n  - [x] `#EXT-X-INDEPENDENT-SEGMENTS` [RFC 8216, 4.3.5.1](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.5.1)\n  - [x] `#EXT-X-START` [RFC 8216, 4.3.5.2](https://datatracker.ietf.org/doc/html/rfc8216#section-4.3.5.2)\n\n### Difference with RFC8216 for `#EXT-X-KEY`\n\nWhen a key in one `KEYFORMAT` is updated or overwritten, all keys in other `KEYFORMAT`s must be updated simultaneously.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxgfone%2Fgo-hls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxgfone%2Fgo-hls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxgfone%2Fgo-hls/lists"}