{"id":37082875,"url":"https://github.com/coldsofttech/pym3u8downloader","last_synced_at":"2026-01-14T10:01:09.856Z","repository":{"id":232256090,"uuid":"777458322","full_name":"coldsofttech/pym3u8downloader","owner":"coldsofttech","description":"M3U8 Downloader is a Python class designed to download and concatenate video files from M3U8 playlists. This class provides functionality to handle M3U8 playlist files, download video segments, concatenate them into a single video file, and manage various error conditions.","archived":false,"fork":false,"pushed_at":"2024-12-25T09:21:14.000Z","size":1478,"stargazers_count":7,"open_issues_count":2,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-01T06:21:32.279Z","etag":null,"topics":["m3u8","m3u8-downloader","m3u8-playlist"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"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/coldsofttech.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2024-03-25T22:17:10.000Z","updated_at":"2025-04-19T04:01:21.000Z","dependencies_parsed_at":"2024-08-04T08:25:13.833Z","dependency_job_id":"95f7b9fd-bec8-4ec9-ad8f-7a2a4ee00066","html_url":"https://github.com/coldsofttech/pym3u8downloader","commit_stats":null,"previous_names":["coldsofttech/pym3u8downloader"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/coldsofttech/pym3u8downloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coldsofttech%2Fpym3u8downloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coldsofttech%2Fpym3u8downloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coldsofttech%2Fpym3u8downloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coldsofttech%2Fpym3u8downloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coldsofttech","download_url":"https://codeload.github.com/coldsofttech/pym3u8downloader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coldsofttech%2Fpym3u8downloader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28416484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["m3u8","m3u8-downloader","m3u8-playlist"],"created_at":"2026-01-14T10:01:09.086Z","updated_at":"2026-01-14T10:01:09.827Z","avatar_url":"https://github.com/coldsofttech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `pym3u8downloader`\n\nM3U8 Downloader is a Python class designed to download and concatenate video files from M3U8 playlists, including master\nplaylists. This class offers comprehensive functionality for managing M3U8 playlist files, downloading video segments,\noptionally combining them into a single video file, and handling various error conditions.\n\n## Installation\n\nM3U8Downloader can be installed using pip:\n\n```bash\npip install pym3u8downloader\n```\n\n## Usage\n\n````python\nfrom pym3u8downloader import M3U8Downloader\n\n# Initialize the downloader\ndownloader = M3U8Downloader(\n    input_file_path=\"http://example.com/video.m3u8\",\n    output_file_path=\"output_video\"\n)\n\n# Download and concatenate the playlist\ndownloader.download_playlist()\n\n# Download and concatenate the master playlist\ndownloader.download_master_playlist(name='720')\n\n# Output\n# Verify  : [##################################################] 100%\n# Download: [##################################################] 100%\n# Build   : [##################################################] 100%\n````\n\n# Documentation\n\n## `pym3u8downloader`\n\n### `M3U8Downloader`\n\n#### Constructors\n\n- `M3U8Downloader(input_file_path: str, output_file_path: str, skip_space_check: Optional[bool] = False, debug: Optional[bool] = False, debug_file_path: Optional[str] = 'debug.log', max_threads: Optional[int] = 10, verify_ssl: Optional[bool] = True)`:\n  Initializes the M3U8Downloader object with the specified parameters.\n\n#### Methods\n\n- `download_playlist(merge: bool = True)`: Downloads video files from an M3U8 playlist. The optional `merge`\n  parameter determines the handling of the downloaded segments. When `merge` is set to `True`, the method downloads and\n  concatenates all video segments into a single output file. If `merge` is `False`, it only downloads the segments\n  without concatenating them, keeping each segment as an individual file.\n- `download_master_playlist(name: Optional[str] = None, bandwidth: Optional[str] = None, resolution: Optional[str] = None, merge: bool = True)`:\n  Downloads video files from an M3U8 master playlist, with the specific variant selected based on optional parameters\n  such as `name`, `bandwidth`, and `resolution`. The optional `merge` parameter determines the handling of the\n  downloaded segments. When `merge` is set to `True`, the method downloads and concatenates all video segments into a\n  single output file. If `merge` is `False`, it only downloads the segments without concatenating them, keeping each\n  segment as an individual file.\n\n#### Properties\n\n- `input_file_path`: Getter/setter property for the input file path.\n- `output_file_path`: Getter/setter property for the output file path.\n- `skip_space_check`: Getter/setter property for the skip space check flag.\n- `debug`: Getter/setter property for the debug flag.\n- `debug_file_path`: Getter/setter property for the debug file path.\n- `max_threads`: Getter/setter property for the maximum number of threads that can be executed in parallel.\n- `is_download_complete`: Getter property for the download completion status.\n- `verify_ssl`: Getter/setter property for the verify SSL flag. This helps skip SSL warnings for HTTPS-based URLs.\n  Defaults to True.\n\n### `M3U8DownloaderError`\n\nThis error class is employed to signal any issues or errors encountered during the execution of `M3U8Downloader`\nmethods.\n\n#### Constructors\n\n- `M3U8DownloaderError(message: str)`: Initialize a M3U8DownloaderError.\n\n### `M3U8DownloaderWarning`\n\nThis warning class is employed to signal any issues encountered during the execution of the `download_master_playlist`\nmethod of the `M3U8Downloader` class, especially when no parameters are passed. Along with the warning message,\nthe `json_data` variable is returned with all available resolution formats (variants) in JSON-structured format.\n\n#### Constructors\n\n- `M3U8DownloaderWarning(message: str, json_data: Optional[list] = None)`: Initialize a M3U8DownloaderWarning.\n\n# Troubleshooting Guide\n\nFor detailed troubleshooting guide, please refer to [TROUBLESHOOTING](TROUBLESHOOTING.md).\n\n# License\n\nPlease refer to the [MIT License](LICENSE) within the project for more information.\n\n# Contributing\n\nWe welcome contributions from the community! Whether you have ideas for new features, bug fixes, or enhancements, feel\nfree to open an issue or submit a pull request on [GitHub](https://github.com/coldsofttech/pym3u8downloader).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoldsofttech%2Fpym3u8downloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoldsofttech%2Fpym3u8downloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoldsofttech%2Fpym3u8downloader/lists"}