ContentProviderHelper is a TypeScript library for integrating with third-party content providers like Planning Center, Lessons.church, and more. It provides a unified interface for browsing media libraries, handling OAuth authentication, and retrieving content for playback in church presentation software.
npm install @churchapps/content-provider-helperimport { getAllProviders, getAvailableProviders } from '@churchapps/content-provider-helper';
// Get all registered providers
const providers = getAllProviders();
// Get info about available providers
const available = getAvailableProviders();
console.log(available); // [{ id: 'planningcenter', name: 'Planning Center', ... }]import { getProvider } from '@churchapps/content-provider-helper';
const provider = getProvider('planningcenter');
// Browse content
const items = await provider.browse();
// Get presentations/playlist for a service
const plan = await provider.getPresentations(serviceId);- B1ChurchProvider - B1.Church content integration
- PlanningCenterProvider - Planning Center Services
- LessonsChurchProvider - Lessons.church curriculum
- BibleProjectProvider - Bible Project videos
- APlayProvider - A.Play media library
- SignPresenterProvider - Sign Presenter content
import { ContentProvider, registerProvider } from '@churchapps/content-provider-helper';
class MyProvider extends ContentProvider {
// Implement required methods
}
registerProvider(new MyProvider());import { detectMediaType } from '@churchapps/content-provider-helper';
detectMediaType('https://example.com/video.mp4'); // 'video'
detectMediaType('https://example.com/image.png'); // 'image'The only reason this program is free is because of the generous support from users. If you want to support us to keep this free, please head over to ChurchApps or sponsor us on GitHub. Thank you so much!
We have a great community for end-users on Facebook. It's a good way to ask questions, get tips and follow new updates. Come join us!
If you discover an issue or have a feature request, simply submit it to our issues log. Don't be shy, that's how the program gets better.
If you would like to contribute in any way, head over to our Slack Channel and introduce yourself. We'd love to hear from you.
If you'd like to contribute to the project:
- Clone the repository
- Install dependencies:
npm install - Run the development playground:
npm run dev - Build:
npm run build
MIT
