{"id":20744300,"url":"https://github.com/f0903/twitch_archiver","last_synced_at":"2026-03-02T08:31:41.992Z","repository":{"id":162295731,"uuid":"636879838","full_name":"F0903/twitch_archiver","owner":"F0903","description":"A blazingly fast and tiny downloader for Twitch VODs (also sub-only). Simply pass in a url, and give it an optional output path with an extension of your choosing, which the video will then be converted to.","archived":false,"fork":false,"pushed_at":"2025-04-21T15:53:39.000Z","size":97,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-21T08:03:27.172Z","etag":null,"topics":["archive","downloader","rust","twitch"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/F0903.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-05T21:46:44.000Z","updated_at":"2025-04-21T15:53:42.000Z","dependencies_parsed_at":"2025-11-21T08:02:28.856Z","dependency_job_id":null,"html_url":"https://github.com/F0903/twitch_archiver","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/F0903/twitch_archiver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F0903%2Ftwitch_archiver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F0903%2Ftwitch_archiver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F0903%2Ftwitch_archiver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F0903%2Ftwitch_archiver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/F0903","download_url":"https://codeload.github.com/F0903/twitch_archiver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/F0903%2Ftwitch_archiver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29995912,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","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":["archive","downloader","rust","twitch"],"created_at":"2024-11-17T07:14:58.033Z","updated_at":"2026-03-02T08:31:41.761Z","avatar_url":"https://github.com/F0903.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Rust Stable](https://github.com/F0903/twitch_archiver/actions/workflows/rust.yml/badge.svg)](https://github.com/F0903/twitch_archiver/actions/workflows/rust.yml)\n\n# twitch_archiver\n\nA fast and tiny downloader for Twitch VODs (also sub-only).\n\nFunctionality is currently extremely barebones, with only hls stream download and conversion support. No VOD metadata is provided as of yet.\n\nTo use as a CLI program, see the [twitch_archiver_cli repo.](https://github.com/F0903/twitch_archiver_cli)\n\n## Usage\n\n```rust\n    use twitch_archiver::{\n        convert::{convert_hls_to_file},\n        Twitch,\n    };\n\n    let twitch = Twitch::new(**your_client_id**, **auth_token_if_needed**);\n    let hls = twitch.get_hls_manifest(\"url\")?;\n    convert_hls_to_file(hls, **your_output_path.mp4**, **optional_ffmpeg_input_args**,**optional_ffmpeg_output_args**)?;\n    // Done!\n```\n\n### Getting your Client ID\n\n1. Open any Twitch VOD\n2. Press F12 to open the dev tools and go to the Network tab. It should now be recording all network requests to and from Twitch\n3. Press CTRL+R to reload the page and start from scratch.\n4. When the page starts loading, wait until the video starts playing. Then press the red button to stop recording, and scroll to the top of the list.\n5. Scroll down through the list until you find a request called \"gql\".\n6. Open this request and find the \"Client-Id\" header under \"Request Headers\". Copy the value.\n\n### Downloading sub-only VODs\n\nTo download sub only VODs, you need to provide an OAuth token.\n\nTo get your OAuth token, follow the method on getting your client id above, but copy the value of the \"Authorization\" header instead, without the first \"OAuth\" part.\n\n### Hardware Acceleration\n\nFor faster conversion, you can use hardware acceleration arguments provided to FFmpeg when using **convert_hls_to_file**.\nFor Nvidia GPUs, you can use the following arguments:\n\n\u003e input_args = \"-hwaccel cuda\"  \n\u003e output_args = \"-c:v h264_nvenc\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff0903%2Ftwitch_archiver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ff0903%2Ftwitch_archiver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff0903%2Ftwitch_archiver/lists"}