{"id":16747911,"url":"https://github.com/amake/video2pod","last_synced_at":"2025-10-17T00:44:27.038Z","repository":{"id":199282778,"uuid":"702540329","full_name":"amake/video2pod","owner":"amake","description":"Annotate a podcast with video frames","archived":false,"fork":false,"pushed_at":"2024-09-14T09:51:33.000Z","size":27,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T12:39:10.702Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amake.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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},"funding":{"github":"amake"}},"created_at":"2023-10-09T14:07:15.000Z","updated_at":"2024-09-14T09:51:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"abe64c42-50f2-4647-9da5-2682faa66dde","html_url":"https://github.com/amake/video2pod","commit_stats":null,"previous_names":["amake/video2pod"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amake%2Fvideo2pod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amake%2Fvideo2pod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amake%2Fvideo2pod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amake%2Fvideo2pod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amake","download_url":"https://codeload.github.com/amake/video2pod/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248228663,"owners_count":21068733,"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":"2024-10-13T02:11:14.966Z","updated_at":"2025-10-17T00:44:22.002Z","avatar_url":"https://github.com/amake.png","language":"Python","funding_links":["https://github.com/sponsors/amake"],"categories":[],"sub_categories":[],"readme":"# video2pod\n\nhttps://github.com/amake/video2pod/assets/2172537/6c0ab3c6-a442-4cb2-a777-f157d683bedc\n\n[Well There's Your Problem](https://wtyppod.podbean.com) is a podcast about\nengineering disasters and systemic failures, from a leftist perspective, with\njokes.\n\nWhile it is a podcast, it also has slides. The \"full\" experience is available in\nthe form of\n[videos](https://www.youtube.com/@welltheresyourproblempodca1465/featured),\nwhich are hard to get into your podcast player.\n\nThis project squares the circle as follows:\n\n1. Download the videos\n2. Extract the slides\n3. Extract the audio\n4. Add the slides to the audio in the form of chapter art\n5. Clone the podcast feed such that it points to the audio with chapter art\n\n## Requirements\n\n- Python 3\n- ffmpeg 4\n\nOptional (for deploying on AWS):\n\n- awscli\n- Docker\n\n## Setup\n\n1. Clone this repo. Run `make help` for info on the basic operations.\n2. Copy `config.ini.example` to `config.ini` and fill it out. The `deployment`\n   section is only required if you plan to deploy this to AWS.\n3. Run `make archive` to download the videos\n4. Run `make all` to produce the chapterized audio files. Look in the `dist`\n   directory.\n\nIf you want to use the audio files directly then you're done. To publish as a\npodcast, you will need to prepare an AWS S3 bucket, an AWS ECR repo, and an AWS\nLambda function and set the appropriate values in `config.ini`.\n\n5. Run `make deploy` to copy the distfiles to S3\n6. Run `make build` to build a Docker image capable of updating the feed\n7. Run `make push` to push the Docker image to ECR and update the Lambda\n   function to use it\n\n### Configuring AWS\n\nThe audio files and RSS feed are served out of S3. You will probably want to put\nCloudFront in front of it. The external URL pointing to `feed.xml` can be\nsubscribed to in your podcast player.\n\nThe Lambda function updates the feed. When there is a new video to convert, it\nwill need a lot of RAM, storage, and execution time. Tuning is left as an\nexercise for the reader. You will probably want to trigger it on a schedule e.g.\nvia EventBridge.\n\n## Where can I listen to it?\n\nYou can't, because I'm not in the business of hosting podcasts. If you are\naffiliated with Well There's Your Problem and would like access for the purposes\nof investigating whether these tools could be useful in publishing an official\nchapterized feed, then please contact me.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famake%2Fvideo2pod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famake%2Fvideo2pod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famake%2Fvideo2pod/lists"}