A modern streaming platform built with Nuxt 3 and Nuxt Content, featuring a beautiful UI, video playback capabilities, and a content management system. This platform provides an immersive viewing experience with features like video categorization, search functionality, and a responsive design.
This template and many others are available at NuxtMint.com
Join our friendly Discord community to get help, share your ideas, and connect with other developers!
A beautiful and modern streaming platform template with:
- π¬ Stunning video player interface with Plyr
- π¨ Clean and responsive design using Tailwind CSS
- π± Mobile-first approach with smooth animations
- β‘οΈ Lightning-fast performance with Nuxt 3
- π₯ Built with the latest web technologies
View Demo Β· Report Bug Β· Request Feature
- π₯ Video streaming with Plyr player integration
- π Content management with Nuxt Content
- π¨ Modern and responsive UI with Tailwind CSS
- π± Mobile-first design approach
- π Content search and filtering
- π JSON-based content management
- π Beautiful animations and transitions
- π¬ Video thumbnails and metadata support
- π·οΈ Category and tag-based organization
- Node.js 16.x or later
- npm, yarn, or pnpm package manager
- OMDB API key (free) for movie posters and metadata in the Hero section
- Clone the repository:
git clone https://github.com/florianjs/iptv-template
cd fiverr-iptv
- Install dependencies:
# Using npm
npm install
# Using yarn
yarn install
# Using pnpm
pnpm install
- Set up environment variables:
- Copy
.env.example
to.env
- Add your OMDB API key (get one for free at https://www.omdbapi.com/apikey.aspx)
- Copy
cp .env.example .env
- Start the development server:
# Using pnpm (recomended)
pnpm dev
# Using npm
npm run dev
# Using yarn
yarn dev
The application will be available at http://localhost:3000
fiverr-iptv/
βββ components/ # Vue components
βββ content/
β βββ medias/ # JSON content files for media items
βββ pages/ # Application pages and routes
βββ public/ # Static files
βββ stores/ # Pinia stores
βββ app.vue # Main application file
βββ nuxt.config.ts # Nuxt configuration
This project uses Nuxt Content for managing media content. All media items are stored as JSON files in the content/medias/
directory, making it easy to:
- Query content using the built-in API
- Leverage powerful search capabilities
- Use Git-based content management
- Benefit from automatic TypeScript types
Add new media items by creating JSON files in the content/medias/
directory. Each file should follow this structure:
{
"title": "Movie Title",
"mediaUrl": "https://example.com/video.mp4",
"mediaThumbnail": "https://example.com/thumbnail.jpg",
"mediaType": "video/mp4",
"tags": ["Category1", "Category2"],
"description": "Movie description",
"quality": "4K",
"duration": "2:30:00",
"ageRating": "PG-13",
"genres": ["Action", "Drama"],
"actors": ["Actor 1", "Actor 2"]
}
Build the application for production:
# Using npm
npm run build
# Using yarn
yarn build
# Using pnpm
pnpm build
Preview the production build:
# Using npm
npm run preview
# Using yarn
yarn preview
# Using pnpm
pnpm preview
This project is optimized for deployment on Cloudflare Pages, which provides:
- Global CDN distribution
- Automatic HTTPS
- Zero cold starts
- Easy deployment process
Follow the Nuxt Content deployment guide for Cloudflare for detailed instructions.
Basic deployment steps:
- Connect your repository to Cloudflare Pages
- Set build command:
pnpm run build
- Set build output directory:
.output/public
- Add environment variables:
OMDB_API_KEY=your_api_key
- Add a D1 SQL Database from Cloudflare
- Bind your database to your Cloudflare Page
The following environment variables are required:
# OMDB API key for movie posters and metadata (required)
OMDB_API_KEY=your_api_key_here
To get started:
- Sign up for a free OMDB API key at https://www.omdbapi.com/apikey.aspx
- Copy
.env.example
to.env
- Replace
your_api_key_here
with your actual OMDB API key
The application can be configured through the nuxt.config.ts
file. Key configurations include:
- Content module settings
- Tailwind CSS configuration
- Plyr player options
- Route handling
The application is fully responsive and optimized for mobile devices. Features include:
- Adaptive layouts
- Touch-friendly controls
- Optimized animations
- Mobile-specific UI enhancements
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE file for details.
- Nuxt.js - The Vue Framework
- Tailwind CSS - CSS Framework
- Plyr - Media Player
- Pinia - State Management
- Nuxt Content - Content Management
- Cloudflare Pages - Deployment Platform
- OMDB API - Movie Data API