{"id":13455763,"url":"https://github.com/akhilrex/podgrab","last_synced_at":"2025-05-14T05:02:21.980Z","repository":{"id":38036750,"uuid":"301706608","full_name":"akhilrex/podgrab","owner":"akhilrex","description":"A self-hosted podcast manager/downloader/archiver tool to download podcast episodes as soon as they become live with an integrated player.","archived":false,"fork":false,"pushed_at":"2024-04-04T18:26:30.000Z","size":3535,"stargazers_count":1771,"open_issues_count":139,"forks_count":102,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-04-10T22:35:13.705Z","etag":null,"topics":["golang","open-source","podcast","podcast-downloader","podcast-player","self-hosted"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akhilrex.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":"2020-10-06T11:38:38.000Z","updated_at":"2025-04-09T05:04:55.000Z","dependencies_parsed_at":"2024-01-13T17:47:23.544Z","dependency_job_id":"9635954f-7b57-4ab3-92a8-51a8a8d484f6","html_url":"https://github.com/akhilrex/podgrab","commit_stats":{"total_commits":187,"total_committers":10,"mean_commits":18.7,"dds":"0.17647058823529416","last_synced_commit":"44e2b1c207288bb8a84ecb64424e0a501fa02510"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhilrex%2Fpodgrab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhilrex%2Fpodgrab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhilrex%2Fpodgrab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhilrex%2Fpodgrab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akhilrex","download_url":"https://codeload.github.com/akhilrex/podgrab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254076345,"owners_count":22010597,"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":["golang","open-source","podcast","podcast-downloader","podcast-player","self-hosted"],"created_at":"2024-07-31T08:01:10.707Z","updated_at":"2025-05-14T05:02:21.917Z","avatar_url":"https://github.com/akhilrex.png","language":"JavaScript","funding_links":["https://www.buymeacoffee.com/akhilrex"],"categories":["JavaScript","Tools for Self-Hosting","Software","Apps","[↑](#-Table-of-Contents) Radio and Podcasts Tools","[↑](#contents) Radio and Podcasts Tools"],"sub_categories":["Automation","MediaManagement","[↑](#-Table-of-Contents) Telegram","[↑](#contents) Telegram"],"readme":"\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003c!-- \u003ca href=\"https://github.com/akhilrex/podgrab\"\u003e\n    \u003cimg src=\"images/logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e --\u003e\n\n  \u003ch1 align=\"center\" style=\"margin-bottom:0px\"\u003ePodgrab\u003c/h1\u003e\n  \u003cp align=\"center\"\u003eCurrent Version -2022.07.07\u003c/p\u003e\n\n  \u003cp align=\"center\"\u003e\n    A self-hosted podcast manager to download episodes as soon as they become live\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/akhilrex/podgrab\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003c!-- \u003ca href=\"https://github.com/akhilrex/podgrab\"\u003eView Demo\u003c/a\u003e\n    · --\u003e\n    \u003ca href=\"https://github.com/akhilrex/podgrab/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/akhilrex/podgrab/issues\"\u003eRequest Feature\u003c/a\u003e\n        ·\n    \u003ca href=\"Screenshots.md\"\u003eScreenshots\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\n## Table of Contents\n\n- [About the Project](#about-the-project)\n  - [Motivation](#motivation)\n  - [Built With](#built-with)\n  - [Features](#features)\n- [Installation](#installation)\n- [License](#license)\n- [Roadmap](#roadmap)\n- [Contact](#contact)\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About The Project\n\nPodgrab is a is a self-hosted podcast manager which automatically downloads latest podcast episodes. It is a light-weight application built using GO.\n\nIt works best if you already know which podcasts you want to monitor. However there is a podcast search system powered by iTunes built into Podgrab\n\n*Developers Note: This project is under active development which means I release new updates very frequently. It is recommended that you use something like [watchtower](https://github.com/containrrr/watchtower) which will automatically update your containers whenever I release a new version or periodically rebuild the container with the latest image manually.*\n\n__Also check out my other self-hosted, open-source solution - [Hammond](https://github.com/akhilrex/hammond) - Vehicle and Expense management system.__\n\n### Motivation\n\nPodgrab started as a tool that I initially built to solve a specific problem I had. During the COVID pandemic times I started going for a run. I do not prefer taking my phone along so I would add podcast episodes to my smart watch which could be connected with my bluetooth earphones. Most podcasting apps do not expose the mp3 files directly which is why I decided to build this quick tool for myself. Once it reached a stage where my requirements were fulfilled I decided to make it a little pretty and share it with everyone else.\n\n![Product Name Screen Shot][product-screenshot]\n[More Screenshots](Screenshots.md)\n\n### Built With\n\n- [Go](https://golang.org/)\n- [Go-Gin](https://github.com/gin-gonic/gin)\n- [GORM](https://github.com/go-gorm/gorm)\n- [SQLite](https://www.sqlite.org/index.html)\n\n### Features\n- Download/Archive complete podcast\n- Auto-download new episodes\n- Tag/Label podcasts into groups\n- Download on demand\n- Podcast Discovery - Search and Add podcasts using iTunes API\n- Full-fledged podcast player - Play downloaded files or stream from original source. Play single episodes, full podcasts and podcast groups(tags)\n- Add using direct RSS feed URL / OMPL import / Search\n- Basic Authentication\n- Existing episode file detection - Prevent re-downloading files if already present\n- Easy OPML import/export\n- Customizable episode names\n- Dark Mode\n- Self Hosted / Open Source\n- Docker support\n\n## Installation\n\nThe easiest way to run Podgrab is to run it as a docker container.\n\n### Using Docker\n\nSimple setup without mounted volumes (for testing and evaluation)\n\n```sh\n  docker run -d -p 8080:8080 --name=podgrab akhilrex/podgrab\n```\n\nBinding local volumes to the container\n\n```sh\n   docker run -d -p 8080:8080 --name=podgrab -v \"/host/path/to/assets:/assets\" -v \"/host/path/to/config:/config\"  akhilrex/podgrab\n```\n\n### Using Docker-Compose\n\nModify the docker compose file provided [here](https://github.com/akhilrex/podgrab/blob/master/docker-compose.yml) to update the volume and port binding and run the following command\n\n```yaml\nversion: \"2.1\"\nservices:\n  podgrab:\n    image: akhilrex/podgrab\n    container_name: podgrab\n    environment:\n      - CHECK_FREQUENCY=240\n     # - PASSWORD=password     ## Uncomment to enable basic authentication, username = podgrab\n    volumes:\n      - /path/to/config:/config\n      - /path/to/data:/assets\n    ports:\n      - 8080:8080\n    restart: unless-stopped\n```\n\n```sh\n   docker-compose up -d\n```\n### Build from Source / Ubuntu Installation\n\nAlthough personally I feel that using the docker container is the best way of using and enjoying something like Podgrab, a lot of people in the community are still not comfortable with using Docker and wanted to host it natively on their Linux servers. Follow the link below to get a guide on how to build Podgrab from source.\n\n[Build from source / Ubuntu Guide](docs/ubuntu-install.md)\n### Environment Variables\n\n| Name            | Description                                                             | Default |\n| --------------- | ----------------------------------------------------------------------- | ------- |\n| CHECK_FREQUENCY | How frequently to check for new episodes and missing files (in minutes) | 30      |\n| PASSWORD        | Set to some non empty value to enable Basic Authentication, username `podgrab`|(empty)|\n| PORT            | Change the internal port of the application. If you change this you might have to change your docker configuration as well | (empty) |  \n\n### Setup\n\n- Enable *websocket support* if running behind a reverse proxy. This is needed for the \"Add to playlist\" functionality.\n- Go through the settings page once and change relevant settings before adding podcasts.\n\n## License\n\nDistributed under the GPL-3.0 License. See `LICENSE` for more information.\n\n## Roadmap\n\n- [x] Basic Authentication\n- [x] Append Date to filename\n- [x] iTunes Search\n- [x] Existing episodes detection (Will not redownload if files exist even with a fresh install)\n- [x] Downloading/downloaded indicator\n- [x] Played/Unplayed Flag\n- [x] OPML import\n- [x] OPML export\n- [x] In built podcast player\n- [ ] Set ID3 tags if not set \n- [ ] Filtering and Sorting options\n- [ ] Native installer for Windows/Linux/MacOS\n\n\n\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\nAkhil Gupta - [@akhilrex](https://twitter.com/akhilrex)\n\nProject Link: [https://github.com/akhilrex/podgrab](https://github.com/akhilrex/podgrab)\n\n\u003ca href=\"https://www.buymeacoffee.com/akhilrex\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/akhilrex/podgrab.svg?style=flat-square\n[contributors-url]: https://github.com/akhilrex/podgrab/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/akhilrex/podgrab.svg?style=flat-square\n[forks-url]: https://github.com/akhilrex/podgrab/network/members\n[stars-shield]: https://img.shields.io/github/stars/akhilrex/podgrab.svg?style=flat-square\n[stars-url]: https://github.com/akhilrex/podgrab/stargazers\n[issues-shield]: https://img.shields.io/github/issues/akhilrex/podgrab.svg?style=flat-square\n[issues-url]: https://github.com/akhilrex/podgrab/issues\n[license-shield]: https://img.shields.io/github/license/akhilrex/podgrab.svg?style=flat-square\n[license-url]: https://github.com/akhilrex/podgrab/blob/master/LICENSE.txt\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square\u0026logo=linkedin\u0026colorB=555\n[linkedin-url]: https://linkedin.com/in/akhilrex\n[product-screenshot]: images/screenshot.jpg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakhilrex%2Fpodgrab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakhilrex%2Fpodgrab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakhilrex%2Fpodgrab/lists"}