{"id":22893797,"url":"https://github.com/mathiazom/pasjonsfrukt","last_synced_at":"2026-02-27T08:42:38.357Z","repository":{"id":44796995,"uuid":"406499101","full_name":"mathiazom/pasjonsfrukt","owner":"mathiazom","description":"🍹 Scrape PodMe podcast streams to mp3 and host with RSS feed. Requires a valid PodMe subscription for premium podcasts.","archived":false,"fork":false,"pushed_at":"2025-04-12T08:44:19.000Z","size":385,"stargazers_count":11,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-06T05:08:01.164Z","etag":null,"topics":["fastapi","podcast","podme","rss-generator"],"latest_commit_sha":null,"homepage":"","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/mathiazom.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":"2021-09-14T19:37:41.000Z","updated_at":"2025-03-05T10:48:44.000Z","dependencies_parsed_at":"2024-10-23T04:57:09.547Z","dependency_job_id":"41e47a72-5fa0-4ab0-bfd7-14294e3bec50","html_url":"https://github.com/mathiazom/pasjonsfrukt","commit_stats":{"total_commits":30,"total_committers":4,"mean_commits":7.5,"dds":0.1333333333333333,"last_synced_commit":"39a147b7c2fe55ec82a280ee183ff18a2d64a1fe"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathiazom%2Fpasjonsfrukt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathiazom%2Fpasjonsfrukt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathiazom%2Fpasjonsfrukt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathiazom%2Fpasjonsfrukt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathiazom","download_url":"https://codeload.github.com/mathiazom/pasjonsfrukt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252941277,"owners_count":21828842,"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":["fastapi","podcast","podme","rss-generator"],"created_at":"2024-12-13T23:15:45.829Z","updated_at":"2026-02-27T08:42:33.330Z","avatar_url":"https://github.com/mathiazom.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍹 pasjonsfrukt\n\n[![PyPI](https://img.shields.io/pypi/v/pasjonsfrukt)](https://pypi.org/project/pasjonsfrukt/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pasjonsfrukt)\n[![PyPI - License](https://img.shields.io/pypi/l/pasjonsfrukt)](https://github.com/mathiazom/pasjonsfrukt/blob/main/LICENSE)\n\nScrape PodMe podcast streams to mp3 and host with RSS feed.\n\n\u003ci style=\"color:grey\"\u003eNote: A valid PodMe subscription is required to access premium content\u003c/i\u003e\n\n### Setup\n\n1. Install `pasjonsfrukt`\n\n```\npip install pasjonsfrukt\n```\n\n2. Install [`ffmpeg`](https://ffmpeg.org/)\n\n3. Define harvest and feed configurations by copying [`config.template.yaml`](config.template.yaml) to your own `config.yaml`.  \n   Most importantly, you need to provide:\n\n   - a `host` path (for links in the RSS feeds)\n   - login credentials (`auth`) for your PodMe account\n   - the `podcasts` you wish to harvest and serve\n\n### Usage\n\n##### Harvest episodes\n\nHarvest episodes of all podcasts defined in config\n\n```sh\npasjonsfrukt harvest\n```\n\nHarvest episodes of specific podcast(s)\n\n```sh\npasjonsfrukt harvest [PODCAST_SLUG]...\n```\n\n##### Update feeds\n\nUpdate all RSS feeds defined in config\n\n```sh\npasjonsfrukt sync\n```\n\nUpdate RSS feed of specific podcast\n\n```sh\npasjonsfrukt sync [PODCAST_SLUG]...\n```\n\n\u003e The feeds are always updated after harvest, so manual feed syncing is only required if files are changed externally\n\n##### Serve RSS feeds with episodes\n\nRun web server\n\n```sh\npasjonsfrukt serve\n```\n\nRSS feeds will be served at `\u003chost\u003e/\u003cpodcast_slug\u003e`, while episode files are served\nat `\u003chost\u003e/\u003cpodcast_slug\u003e/\u003cepisode_id\u003e`\n\n\u003e `host` must be defined in the config file.\n\n##### Secret\n\nIf a `secret` has been defined in the config, a query parameter (`?secret=\u003csecret-string\u003e`) with matching secret string\nis required to access the served podcast feeds and episode files. This is useful for making RSS feeds accessible on the\nweb, without making them fully public. Still, the confidentiality is provided as is, with no warranties 🙃\n\n### Development\n\n#### Formatting\n\n```commandline\npoe fmt\n```\n\u003e uses [Black](https://black.readthedocs.io/en/stable/) code formatter\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathiazom%2Fpasjonsfrukt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathiazom%2Fpasjonsfrukt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathiazom%2Fpasjonsfrukt/lists"}