{"id":21097214,"url":"https://github.com/podverse/podverse-api","last_synced_at":"2025-05-16T16:31:22.520Z","repository":{"id":37002975,"uuid":"147263341","full_name":"podverse/podverse-api","owner":"podverse","description":"Data API, database migration scripts, and backend services for all Podverse apps","archived":false,"fork":false,"pushed_at":"2024-04-29T03:43:35.000Z","size":286615,"stargazers_count":24,"open_issues_count":41,"forks_count":15,"subscribers_count":6,"default_branch":"develop","last_synced_at":"2024-05-01T11:37:02.027Z","etag":null,"topics":["agplv3","foss","hacktoberfest","libre","open-source","podcast","podcasting","podcasting20","podcasts","rss","v4v","valueforvalue"],"latest_commit_sha":null,"homepage":"https://podverse.fm/about","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/podverse.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":"2018-09-03T23:32:34.000Z","updated_at":"2024-05-30T02:00:00.212Z","dependencies_parsed_at":"2023-12-18T05:40:51.720Z","dependency_job_id":"8696a0ef-c965-41f5-9fbe-d4aae9f558cc","html_url":"https://github.com/podverse/podverse-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podverse%2Fpodverse-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podverse%2Fpodverse-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podverse%2Fpodverse-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/podverse%2Fpodverse-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/podverse","download_url":"https://codeload.github.com/podverse/podverse-api/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225438849,"owners_count":17474484,"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":["agplv3","foss","hacktoberfest","libre","open-source","podcast","podcasting","podcasting20","podcasts","rss","v4v","valueforvalue"],"created_at":"2024-11-19T22:46:54.888Z","updated_at":"2024-11-19T22:46:55.532Z","avatar_url":"https://github.com/podverse.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# podverse-api\n\nData API, database migration scripts, and backend services for the Podverse ecosystem\n\n- [Getting started](#getting-started)\n  * [NPM or Yarn](#npm-or-yarn)\n  * [Setup environment variables](#setup-environment-variables)\n  * [Install node_modules](#install-node-modules)\n  * [Start dev server](#start-dev-server)\n  * [Populate database](#populate-database)\n  * [Add podcast categories to the database](#add-podcast-categories-to-the-database)\n  * [Sync podcast data with Podcast Index API](#sync-podcast-data-with-podcast-index-api)\n  * [Matomo page tracking and analytics](#matomo-page-tracking-and-analytics)\n  * [More info](#more-info)\n\n\u003csmall\u003e\u003ci\u003e\u003ca href='http://ecotrust-canada.github.io/markdown-toc/'\u003egenerated with markdown-toc\u003c/a\u003e\u003c/i\u003e\u003c/small\u003e\n\n## Getting started\n\nIf you are looking to run this app or contribute to Podverse for the first time, please read the sections that are relevant for you in our [CONTRIBUTE.md](https://github.com/podverse/podverse-ops/blob/master/CONTRIBUTING.md) file in the podverse-ops repo. Among other things, that file contains instructions for running a local instance of the Podverse database.\n\n### NPM or Yarn\n\nWe use yarn and maintain a `yarn.lock` file, but it's not really a requirement for you to use yarn. This documentation uses npm in examples, but we generally use the yarn equivalent commands.\n\n### Setup environment variables\n\nFor local development, environment variables are provided by a local `.env` file. You can find a link to example `.env` files in the [CONTRIBUTING.md](https://github.com/podverse/podverse-ops/blob/master/CONTRIBUTING.md) file.\n\n### Install node_modules\n\n```bash\nnpm install\n```\n\n### Start dev server\n\n```bash\nnpm run dev\n```\n\n### Populate database\n\nInstructions for this can be found in the [podverse-ops CONTRIBUTING.md file](https://github.com/podverse/podverse-ops/blob/master/CONTRIBUTING.md).\n\n### Add podcast categories to the database\n\nIf you are creating a database from scratch, and not using the `populateDatabase` command explained in the CONTRIBUTE.md file, then you will need to populate the database with categories.\n\n```bash\nnpm run dev:seeds:categories\n```\n\n### Sync podcast data with Podcast Index API\n\nPodverse maintains its own podcast directory, and parses RSS feeds to populate it with data.\n\nHowever, in prod Podverse syncs its database with the [Podcast Index API](https://podcastindex.org/), the world's largest open podcast directory, and the maintainers of the \"Podcasting 2.0\" RSS spec.\n\nWe run scripts in a cron interval that request from PI API a list of all the podcasts that it has detected updates in over the past X minutes, and then add those podcast IDs to an Amazon SQS queue for parsing, and then our parser containers, which run continuously, pull items from the queue, run our parser logic over it, then save the parsed data to our database.\n\nIf you'd like to run your own full instance of Podverse and would like a thorough explanation of the processes involved, please contact us and we can document it.\n\n### Matomo page tracking and analytics\n\nTODO: explain the Matomo setup\n\n### More info\n\nWe used to have a more detailed README file, but I removed most of the content, since it is unnecessary for most local development workflows, and the information it was getting out-of-date. If you're looking for more info though, you can try digging through our [old README file here](https://github.com/podverse/podverse-api/blob/develop/docs/old/old-readme.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodverse%2Fpodverse-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpodverse%2Fpodverse-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodverse%2Fpodverse-api/lists"}