{"id":17300624,"url":"https://github.com/gnattu/fevertube","last_synced_at":"2026-04-16T18:34:01.025Z","repository":{"id":205988039,"uuid":"715571648","full_name":"gnattu/FeverTube","owner":"gnattu","description":"Automatically download YouTube videos with RSS aggregators","archived":false,"fork":false,"pushed_at":"2023-11-07T12:28:29.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T21:49:13.604Z","etag":null,"topics":["rss","youtube","youtube-dl","yt-dlp"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/gnattu.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}},"created_at":"2023-11-07T12:15:43.000Z","updated_at":"2024-04-19T03:44:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"0d91eb0e-5f8f-4238-a02f-6813a87c027c","html_url":"https://github.com/gnattu/FeverTube","commit_stats":null,"previous_names":["gnattu/fevertube"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gnattu/FeverTube","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnattu%2FFeverTube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnattu%2FFeverTube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnattu%2FFeverTube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnattu%2FFeverTube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gnattu","download_url":"https://codeload.github.com/gnattu/FeverTube/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnattu%2FFeverTube/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267973343,"owners_count":24174402,"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","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"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":["rss","youtube","youtube-dl","yt-dlp"],"created_at":"2024-10-15T11:29:35.350Z","updated_at":"2026-04-16T18:33:55.986Z","avatar_url":"https://github.com/gnattu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FeverTube\n\nCLI tool to automatically download YouTube videos from RSS feeds. It fetches unread items from RSS aggregators via the [Fever API](https://github.com/DigitalDJ/tinytinyrss-fever-plugin/blob/master/fever-api.md) and sends them to [Metube](https://github.com/alexta69/metube) for video downloads.\n\nYouTube provides official RSS feeds for channels using the format `https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID`. However, these feeds are limited in the number of videos they provide. For more comprehensive RSS feeds, you can create a Google API key and utilize the YouTube Data API. Afterward, you can set up an instance of [RSSHub](https://docs.rsshub.app) to obtain better RSS feeds.\n\nSeveral RSS feed aggregators have implemented the Fever API, including [Tiny Tiny RSS](https://tt-rss.org) and [Fresh RSS](https://freshrss.org/index.html). You can choose the one you prefer to use with this project.\n\n## Usage\n\n### CLI\n\n```shell\nUsage: fevertube [options] [command]\n\nOptions:\n  -u, --user \u003cuser\u003e                    Fever API username\n  -p, --password \u003cpassword\u003e            Fever API password\n  -f, --fever-api-url \u003cfever-api-url\u003e  The base URL of the Fever API\n  -m, --metube-url \u003cmetube-url\u003e        URL of Metube\n  -g, --feed-groups \u003cfeed-groups\u003e      Specify the feed groups you want to download, using comma-separated group IDs. By default, it downloads all unread items from\n                                       all groups\n  -o, --metube-option \u003cmetube-option\u003e  MeTube download options in JSON string format\n  -r, --refreshing-interval \u003cseconds\u003e  Poll for updates from feed sources at specific intervals (in seconds). FeverTube will continuously run in this mode to check\n                                       for updates\n  -h, --help                           display help for command\n\nCommands:\n  show-groups                          Show all RSS subscription groups\n```\n\n- The `-g, --feed-groups` option can specify a single group like `--feed-groups 1` or multiple groups like `--feed-groups 1,2,3`.\n\n- The `\u003cmetube-option\u003e` is a JSON string with properties defined by `MetubeDownloadRequest` in [datatype.ts](./datatype.ts). For example: `--metube-option '{\"quality\": \"480\" }'`\n\n- Use the `show-groups` command to retrieve the feed group IDs from the RSS aggregator, allowing you to specify them with `-g, --feed-groups`.\n\n### Caveats:\n\n- Ensure that you include the part up to `?api` as the Fever API base URL. For example, use `http://freshrss.example.net/api/fever.php?api` if you are using Fresh RSS, and `http://ttrss.example.net/plugins/fever/?api` if you are using Tiny Tiny RSS.\n\n- Due to MeTube's API limitations, the `quality` property of `\u003cmetube-option\u003e` can only be one of `best`, `1440`, `1080`, `720`, `480`, and `audio`. Resolutions other than these options, such as 4K or 8K, cannot be specified.\n\n- If you have multiple feed groups and do not specify `-g, --feed-groups` to only fetch YouTube-related feeds, this tool will send URLs from all unread feeds it get to MeTube, even if the URLs are not related to YouTube. This may result in undefined behaviors. However, `yt-dlp` does support sources other than YouTube, so you can try using this tool to download videos from other sources as well.\n\n## Build and run\n\nTo install dependencies:\n\n```bash\nbun install\n```\n\nTo run:\n\n```bash\nbun run index.ts\n```\n\nTo generate single binary executable:\n\n```shell\nbun run build\n```\n\nThis project was created using `bun init` in bun v1.0.9. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnattu%2Ffevertube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnattu%2Ffevertube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnattu%2Ffevertube/lists"}