Skip to content

SacredData/nuxt-peertube

Repository files navigation

nuxt-peertube

A Nuxt module for interacting with a remote Peertube instance. Allows using Nuxt as a front-end to the Peertube instance API.

Status

Work-In-Progress

Please do not use this module yet for anything important. We are learning Nuxt module development as we go and so our module should not be seen as reference implementation of anything.

Background

This module is intended to provide convenient functionality for operating and interacting with a Peertube instance's API.

We are taking work that we had to do for a client's web site, and generalizing it with this module, so that it can be applied to other sites that have the same use case.

TODOs

Config

  • nuxt config peertube key
  • serverUrl

Composables

  • usePeertubeRegistration() - Register user with the peertube instance
  • usePeertubeClient() - Login with user creds and store token in local storage
  • usePeertubeChannel() - Get a channel on the peertube
  • usePeertubeVideo() - Get a video on the peertube
  • usePeertubeSearch() - Get search results from the peertube
  • usePeertubeUserHistory() - Get user viewing history for the logged in user of the Peertube instance
  • usePeertubePodcastFeed() - get feed for peertube channel
  • usePeertubeNotifications() - get notifications for logged in user

npm version npm downloads License Nuxt

My new Nuxt module for doing amazing things.

Features

  • Composables for common Peertube user and admin functions
  • Embed Peertube videos, playlists, and channels programmatically onto your page
  • Makes authentication into Peertube simple and painless
  • Acquire the user's watch history, following feeds, and user info
  • Search Peertube instance's videos, channels, and playlists

Quick Setup

Install the module to your Nuxt application with one command:

npx nuxi module add my-module

That's it! You can now use My Module in your Nuxt app ✨

Contribution

Local development
# Install dependencies
npm install

# Generate type stubs
npm run dev:prepare

# Develop with the playground
npm run dev

# Build the playground
npm run dev:build

# Run ESLint
npm run lint

# Run Vitest
npm run test
npm run test:watch

# Release new version
npm run release