{"id":13498526,"url":"https://github.com/madiele/TwitchToPodcastRSS","last_synced_at":"2025-03-29T01:32:09.369Z","repository":{"id":39583444,"uuid":"396081525","full_name":"madiele/TwitchToPodcastRSS","owner":"madiele","description":"Webapp that transforms a Twitch channel into a podcast feed to be used inside a podcast client","archived":false,"fork":false,"pushed_at":"2023-08-05T12:49:22.000Z","size":163,"stargazers_count":50,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-01T21:47:33.960Z","etag":null,"topics":["docker","docker-compose","flask-application","podcast-generator","raspberry-pi","rss","twitch"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/madiele.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2021-08-14T17:36:38.000Z","updated_at":"2024-04-23T12:08:10.000Z","dependencies_parsed_at":"2024-04-07T03:37:26.141Z","dependency_job_id":"337f3304-7114-42dc-8aef-09688daab701","html_url":"https://github.com/madiele/TwitchToPodcastRSS","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madiele%2FTwitchToPodcastRSS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madiele%2FTwitchToPodcastRSS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madiele%2FTwitchToPodcastRSS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madiele%2FTwitchToPodcastRSS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madiele","download_url":"https://codeload.github.com/madiele/TwitchToPodcastRSS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222445061,"owners_count":16985750,"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":["docker","docker-compose","flask-application","podcast-generator","raspberry-pi","rss","twitch"],"created_at":"2024-07-31T21:00:35.623Z","updated_at":"2024-10-31T16:30:20.700Z","avatar_url":"https://github.com/madiele.png","language":"Python","funding_links":["https://www.buymeacoffee.com/madiele"],"categories":["Linksammlung"],"sub_categories":["Podcasts hören"],"readme":"based on [twitchRSS](https://github.com/lzeke0/TwitchRSS)\n\n# TwitchToPodcastRSS\n\n# ℹ️ Also check [vod2pod-rss](https://github.com/madiele/vod2pod-rss) a rewrite in rust that adds youtube support and modern UI for feed generation\n\nconverts a twitch channel in a full-blown podcast\n\u003ca label=\"example of it working with podcast addict\" href=\"url\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/4585690/129647659-b3bec66b-4cbb-408c-840c-9596f0c32dc2.jpg\" align=\"left\" height=\"400\" \u003e\u003c/a\u003e\n## Features:\n- completely converts the vods in a proper podcast RSS that can be listened directly inside the client (you can even disable trascoding if they support audio only m3u8 playback, [podcast addict](https://play.google.com/store/apps/details?id=com.bambuna.podcastaddict\u0026hl=en_US\u0026gl=US) is the only app I found that has support for it), no need for the twitch app\n- the description has a clickable image that opens the vod in the twitch app\n- the vods are not downloaded on the server, this means that the episodes are only available until they get deleted from twitch (2 weeks - 2 months in general, depends on the creator settings)\n- vods are transcoded to mp3 192k on the fly by default, tested to be working flawlessly even on a raspberry pi 3.\n\n## Known issues:\n- when transcoding seeking to the last minute or so can be buggy, I have no idea why, help is welcome\n- to improve performance you can only have one ongoing transcoding of the same vod on the same client at once\n- when transcoding seeking around too fast can be buggy\n- when playing transcoded vod's mp3 it's possible to hear audio skipping 1-2 second in time every once in a while, this is caused by the connection dropping when downloading, and due to a technical limitation can't really be fixed (twitch gives a variable bitrate stream with seek data in seconds, but the clients wants a fixed bitrate stream with seek data in bytes, when converting some rounding errors cause the audio to glitch)\n- (only if transcoding is disabled) first time you ask for a feed it will take up to a minute or two for the request to go through, this is due to technical limitations. since updates are generally done in background by the podcast clients this should not be a huge limitation, just give it time. if you only listen/watch inside the twitch app or website be sure to enable [links only mode](#only-links-mode) to make the feed generation much faster\n- (only if transcoding is disabled) downloading only works with transcoding enabled (unless the client supports m3u8 download, which is rare)\n\n## Donations\nthis is a passion project, and mostly made for myself, but if you want to gift me a pizza margherita feel free!\n\n[![\"Buy Me A Coffee\"](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/madiele)\n\n## Usage\nwhen you host this just add /vod/channelName to your server path and an RSS will be generated\n\nexample: `myserver.com/vod/channelname`\n\njust add the link to your podcast client\n\n### transcoding\nto enable transcoding just add `?transcode=true` to your url\n\nexample: `myserver.com/vod/channelname?transcode=True`\n\n### show currently streaming\nunfinished streams are not included, but if you want them to just add `?include_streaming=True` to the feed URL\n\nexample: `myserver.com/vod/channelname?include_streaming=True`\n\n### sorting\nif you use a feed reader you can order the feed by any field suppored by twitch, the list of fields to sort by can be found [here](https://dev.twitch.tv/docs/api/reference#get-videos) in the response field section\n\nby default it sorts by the published_at field\n\nto enable sorting just add `sort_by=[key]` or/and `desc=True` to the URL\n\nsome examples:\n\nto sort by views:\n\n`myserver.com/vod/channelname?sort_by=view_count`\n\nto sort by views descending:\n\n`myserver.com/vod/channelname?sort_by=view_count\u0026desc=true`\n\n### only links mode\n\nif you only listen to the episodes in the twitch app or website you can enable the `links_only=true` to skip the fetching of the audio stream, doing so will make the feed generation almost instant, so it's highly raccomanded to enable the option if you don't use the included audio feed\n\nexample: `myserver.com/vod/channelname?links_only=True`\n\n### mixing options\n\nto mix options just add `\u0026` beetween them\n\nexample: `myserver.com/vod/channelname?sort_by=view_count\u0026desc=true\u0026links_only=true\u0026include_streaming=True`\n\n## install with docker\nbefore doing anything be sure to get your SECRET and CLIENT ID from twitch\nhttps://dev.twitch.tv/console\n\nprecompiled images are [here](https://hub.docker.com/r/madiele/twitch_to_podcast_rss/) for linux machines with arm64, amd64, arm/v7, i386 architectures\n\nimages for raspberry pis are included  \n\n\n### use [docker-compose](https://docs.docker.com/compose/install/) with precompiled image (easiest)\n\n`git clone https://github.com/madiele/TwitchToPodcastRSS.git`\n\n`cd TwitchToPodcastRSS`\n\nedit `docker-compose.yml` with your PORT, SECRET and CLIENT_ID\n(in the file you will find also optional parameters like sub_folder for use with reverse proxies, define a unique server name, and so on)\n\n`nano docker-compose.yml`\n\nsave and\n\n`sudo docker-compose up -d`\n\n#### when you want to update:\n\nrun this inside the folder with `docker-compose.yml`\n\n`sudo docker-compose pull \u0026\u0026 sudo docker-compose up -d`\n\nthen run this to delete the old version form your system (note: this will also delete any other unused image you have)\n\n`sudo docker system prune`\n\n### pull the precompiled image from hub.docker.com\n  \n  `docker pull madiele/twitch_to_podcast_rss:latest`\n\nedit with PORT,SECRET and CLIENT_ID\n\n  `sudo docker run -d --restart always -p \u003cPORT\u003e:80 -e TWITCH_SECRET=\"\u003cYOUR_SECRET\u003e\" -e TWITCH_CLIENT_ID=\"\u003cYOUR_CLIENT_ID\u003e\" madiele/twitch_to_podcast_rss:latest`\n  \n  to update kill and delete the running container and run the same commands\n\n### build it yourself (this will take a while)\n\n`git clone https://github.com/madiele/TwitchToPodcastRSS.git`\n\n`cd TwitchToPodcastRSS`\n\n`docker build -t TwitchToPodcastRSS .`\n\nedit with PORT,SECRET and CLIENT_ID\n\n`sudo docker run -d --restart always -p \u003cPORT\u003e:80 -e TWITCH_SECRET=\"\u003cYOUR_SECRET\u003e\" -e TWITCH_CLIENT_ID=\"\u003cYOUR_CLIENT_ID\u003e\" TwitchToPodcastRSS`\n\n## install without docker\nsince this is a flask app most methods of deployment listed [here](https://flask.palletsprojects.com/en/2.0.x/deploying/index.html) should work too\n\n### About\nthe original [twitchRSS](https://github.com/lzeke0/TwitchRSS) has been developed by László Zeke.\nLater modified into [TwitchToPodcastRSS](https://github.com/madiele/TwitchToPodcastRSS) by Mattia Di Eleuterio\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadiele%2FTwitchToPodcastRSS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadiele%2FTwitchToPodcastRSS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadiele%2FTwitchToPodcastRSS/lists"}