All Projects → podverse → podverse-api

podverse / podverse-api

Licence: AGPL-3.0 License
Data API, database migration scripts, and backend services for all Podverse models

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to podverse-api

castaliopodcast.github.io
Um podcast inspirado para castálio!
Stars: ✭ 32 (+113.33%)
Mutual labels:  podcast, podcasting
jam
🍓 Jam is your own open source Clubhouse for mini conferences, friends, communities
Stars: ✭ 1,030 (+6766.67%)
Mutual labels:  podcast, podcasting
Awesome Russian It
📖 🎧 📺 📆 Список полезных русскоязычных ресурсов, связанных с ИТ
Stars: ✭ 323 (+2053.33%)
Mutual labels:  podcast, podcasts
Spotify-Podcast-Feed
A service which provides Spotify podcast as RSS feed, which can be subscribed in any podcast app.
Stars: ✭ 16 (+6.67%)
Mutual labels:  podcast, podcasts
Tsacdop
Enjoy podcasts with Tsacdop! A podcast player built with flutter.
Stars: ✭ 188 (+1153.33%)
Mutual labels:  podcast, podcasts
Podlive Macos
Never miss a live streaming podcast!
Stars: ✭ 40 (+166.67%)
Mutual labels:  podcast, podcasts
Winds
A Beautiful Open Source RSS & Podcast App Powered by Getstream.io
Stars: ✭ 8,530 (+56766.67%)
Mutual labels:  podcast, podcasts
Podstation
podStation is a web podcast aggregator for Chrome.
Stars: ✭ 76 (+406.67%)
Mutual labels:  podcast, podcasts
Awesome Podcasts
🎙 A collection of awesome engineering podcasts! ARCHIVED in favor of https://github.com/rShetty/awesome-podcasts
Stars: ✭ 184 (+1126.67%)
Mutual labels:  podcast, podcasts
Awesome Podcasts
🎙 Curated podcasts for designers, developers, product managers, entrepreneurs and hustlers
Stars: ✭ 116 (+673.33%)
Mutual labels:  podcast, podcasts
podhouse
The best way to listen to your favorite podcasts.
Stars: ✭ 39 (+160%)
Mutual labels:  podcast, podcasts
Spotifeed
A simple service to serve up Spotify podcasts as RSS feeds for use in any podcast app.
Stars: ✭ 238 (+1486.67%)
Mutual labels:  podcast, podcasts
podcast
A curated list of awesome dev podcast around the globe
Stars: ✭ 17 (+13.33%)
Mutual labels:  podcast, podcasts
rcast
🎧 PWA podcast player written with LWC
Stars: ✭ 72 (+380%)
Mutual labels:  podcast
gatsby-themes
A collection of open source, well designed, highly customizable and 100% free Gatsby themes for blazing fast sites. We are working on the next version of the Flex theme. See https://github.com/reflexjs/reflexjs
Stars: ✭ 296 (+1873.33%)
Mutual labels:  podcast
jadibot
Telegram Bot for jadi.net
Stars: ✭ 59 (+293.33%)
Mutual labels:  podcast
awesome-gamedev
A compilation of game dev related media (podcasts, Youtube, article, books, etc..)
Stars: ✭ 49 (+226.67%)
Mutual labels:  podcasts
scott
💼 The Podcast Regional Manager
Stars: ✭ 21 (+40%)
Mutual labels:  podcast
pdpcid-kumpulan-ide
Kumpulan ide-ide menarik untuk dibahas di podcast anggota PDPC atau ide-ide lainnya.
Stars: ✭ 24 (+60%)
Mutual labels:  podcast
serverless-podcast
[UNMAINTAINED] 📢 Easy, cheap podcast hosting using Serverless and S3
Stars: ✭ 15 (+0%)
Mutual labels:  podcast

podverse-api

Data API, database migration scripts, and backend services for the Podverse ecosystem

Getting started

Local Development and Deployment

This repo contains steps for running podverse-api locally for development.

For stage/prod deployment instructions, please refer to the podverse-ops docs.

Prereqs

Before you can run podverse-api you will need a local Postgres version 11.5 database running.

You can setup your own database, or go to the podverse-ops repo, add the podverse-db-local.env file as explained in the docs, then run this command:

docker-compose -f docker-compose.local.yml up -d podverse_db

Setup environment variables

For local development, environment variables are provided by a local .env file. Duplicate the .env.example file, rename it to .env, and update all of the environment variables to match what is needed for your environment.

Install node_modules

npm install

Start dev server

npm run dev

Sample database data

The podverse-ops repo contains the qa-database.sql file to help you get started quickly with a development database. You can clone the podverse-ops repo, then run the following command after the Postgres database is running:

psql -h 0.0.0.0 -p 5432 -U postgres -W -f ./sample-database/qa-database.sql

The password for the .sql file is: mysecretpw

Add podcast categories to the database

npm run dev:seeds:categories

Add feed urls to the database

To add podcasts to the database, you first need to add feed urls to the database, and then run the podcast parser with those feed urls.

You can pass multiple feed urls as a comma-delimited string parameter to the npm run dev:scripts:addFeedUrls command.

A list of sample podcast feed urls can be found in podverse-api/docs/sampleFeedUrls.txt.

npm run dev:scripts:addFeedUrls <feed urls>

Parse feed urls to add podcasts and episodes to the database

Orphan feed urls do not have a podcast associated with them.

npm run dev:scripts:parseOrphanFeedUrls

To parse all non-orphan and public feed urls, you can run:

npm run dev:scripts:parsePublicFeedUrls

Use SQS to add feed urls to a queue, then parse them

This project uses AWS SQS for its remote queue.

npm run dev:scripts:addAllOrphanFeedUrlsToPriorityQueue

or:

npm run dev:scripts:addAllPublicFeedUrlsToQueue

or:

npm run dev:scripts:addNonPodcastIndexFeedUrlsToPriorityQueue

or to add all recently updated (according to Podcast Index), public feeds to the priority queue:

yarn dev:scripts:addRecentlyUpdatedFeedUrlsToPriorityQueue

After you have added feed urls to a queue, you can retrieve and then parse the feed urls by running:

npm run dev:scripts:parseFeedUrlsFromQueue <restartTimeOut> <queueType>
# restartTimeOut in milliseconds; queueType is optional and only acceptable value is "priority"

Request Google Analytics pageview data and save to database

Below are sample commands for requesting unique pageview data from Google Analytics, which is used throughout the site for sorting by popularity (not a great/accurate system for popularity sorting...).

npm run dev:scripts:queryUniquePageviews -- clips month
npm run dev:scripts:queryUniquePageviews -- episodes week
npm run dev:scripts:queryUniquePageviews -- podcasts allTime

See the podverse-ops repo for a sample cron configuration for querying the Google API on a timer.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].