{"id":25911468,"url":"https://github.com/copyleftdev/testing-hls-fun","last_synced_at":"2026-04-19T17:07:16.273Z","repository":{"id":193467859,"uuid":"688859350","full_name":"copyleftdev/testing-hls-fun","owner":"copyleftdev","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-08T08:59:18.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-09-08T10:09:55.581Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/copyleftdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-08T08:55:25.000Z","updated_at":"2023-09-08T10:09:59.520Z","dependencies_parsed_at":"2023-09-08T10:20:07.516Z","dependency_job_id":null,"html_url":"https://github.com/copyleftdev/testing-hls-fun","commit_stats":null,"previous_names":["copyleftdev/testing-hls-fun"],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copyleftdev%2Ftesting-hls-fun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copyleftdev%2Ftesting-hls-fun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copyleftdev%2Ftesting-hls-fun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/copyleftdev%2Ftesting-hls-fun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/copyleftdev","download_url":"https://codeload.github.com/copyleftdev/testing-hls-fun/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241637271,"owners_count":19994946,"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":[],"created_at":"2025-03-03T09:17:35.955Z","updated_at":"2026-04-19T17:07:16.243Z","avatar_url":"https://github.com/copyleftdev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HLS Stream Testing\n\nThis project is aimed at testing HLS (HTTP Live Streaming) .ts segments using Python. It fetches playlists, parses the M3U8 files, retrieves segment URLs, and then validates each segment's content to ensure both video and audio streams are present.\n\n## Getting Started\n\n1. Clone the repository:\n```\ngit clone https://github.com/copyleftdev/testing-hls-fun.git\ncd testing-hls-fun\n```\n\n2. Install the necessary dependencies:\n```\npip install -r requirements.txt\n```\n\n3. Run the tests:\n```\npytest -v\n```\n\n## Dependencies\n\n- requests: Used for fetching HLS playlists and segments.\n- pytest: For running tests.\n- av: For validating video and audio streams in .ts segments.\n\n## Flowchart\n\n```mermaid\ngraph TD\nA[Start] --\u003e B[Fetch HLS Playlist]\nB --\u003e C[Parse M3U8 to get Segment URLs]\nC --\u003e D[For each Segment URL]\nD --\u003e E{Validate TS Content}\nE --\u003e F[Check Video Stream]\nE --\u003e G[Check Audio Stream]\nF --\u003e H[End]\nG --\u003e H[End]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcopyleftdev%2Ftesting-hls-fun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcopyleftdev%2Ftesting-hls-fun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcopyleftdev%2Ftesting-hls-fun/lists"}