Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/willnguyen1312/socialplayer

Framework agnostic library for playing social media player such as YouTube, Facebook, Twitch, and Vimeo
https://github.com/willnguyen1312/socialplayer

facebook player social video vimeo youtube

Last synced: 6 days ago
JSON representation

Framework agnostic library for playing social media player such as YouTube, Facebook, Twitch, and Vimeo

Awesome Lists containing this project

README

        

# Socialplayer

A simple yet complete playback library designed for UI frameworks or even without

## Architecture

- Bridge design pattern
- Plugin-based system
- Minimal API surface to avoid breaking changes
- Embrace the web platform APIs
- Avoid framework-specific locked-in APIs

## Technology decisions

- [Changesets](https://github.com/changesets/changesets) - for versioning
- [Happy-dom](https://github.com/capricorn86/happy-dom) - for node-based browser testing environment
- [Tsup](https://tsup.egoist.dev/) - for bundling libraries
- [Turbo](https://turbo.build/repo) - for remote-caching build system
- [Github Actions](https://github.com/features/actions) - for CI/CD
- [Netlify](https://www.netlify.com/) - for hosting
- [TypeScript](https://www.typescriptlang.org/) - for type safety
- [Vite](https://vitejs.dev/) - for examples application
- [Vitepress](https://vitepress.dev/) - for documentation
- [Vitest](https://vitest.dev/) - for unit and integration testing

## Development

```bash
git clone https://github.com/willnguyen1312/socialplayer
cd socialplayer
pnpm install
```

## Commands

### With Docs

```bash
pnpm start-docs
```

### With Preact

```bash
pnpm start-preact
```

### With React

```bash
pnpm start-react
```

### With Svelte

```bash
pnpm start-svelte
```

### With Vanilla JS

```bash
pnpm start-vanilla
```

### With Vue

```bash
pnpm start-vue
```

### With Solid

```bash
pnpm start-solid
```

### With Qwik

```bash
pnpm start-qwik
```

## Roadmap

- ✅ Add examples
- ✅ Implement core logic
- ✅ Implement framework adapters
- ✅ Implement some common use plugins such as data streaming
- ✅ Write documentation

## Supported framework adapters

- ✅ Vue
- ✅ Preact
- ✅ Svelte
- ✅ Solid
- ✅ React
- ✅ Qwik

## Supported social media players

- [YouTube](https://developers.google.com/youtube/iframe_api_reference)
- [Facebook](https://developers.facebook.com/docs/plugins/embedded-video-player/api)
- [SoundCloud](https://developers.soundcloud.com/docs/api/html5-widget)
- [Vimeo](https://developer.vimeo.com/player/sdk/basics)
- [Wistia](https://wistia.com/doc/player-api)
- [Twitch](https://dev.twitch.tv/docs/embed/video-and-clips/)
- [DailyMotion](https://developers.dailymotion.com/player/#player-library-script)
- [Vidyard](https://knowledge.vidyard.com/hc/en-us/articles/360019034753-Using-the-Vidyard-Player-API)
- [Mixcloud](https://www.mixcloud.com/developers/widget/#getting-started)
- [Streamable](https://streamable.com) player is powered by [Player.js](https://github.com/embedly/player.js)

## Inspiration

- [Tanstack](https://tanstack.com) - A collection of high-quality open source libraries for web developers
- [Zag](https://zagjs.com) - A collection of framework-agnostic UI component patterns
- [React-player](https://github.com/cookpete/react-player) - A React component for playing a variety of URLs, including
file paths, YouTube, Facebook, Twitch, SoundCloud, Streamable, Vimeo, Wistia and DailyMotion
- [UI frameworks and Media Elements 🎧](https://medium.com/axon-enterprise/ui-frameworks-and-media-elements-c0c6832528e5)

## Sponsor

Buy Me A Coffee

## License

MIT © [Nam Nguyen](https://github.com/willnguyen1312)