Livingseed Media Cut is a free, web-based tool designed to help our ministry community easily extract audio from YouTube videos. Whether you need a sermon clip, worship song segment, or teaching excerpt, this tool makes it simple to download exactly what you need in your preferred format.
- 🎵 Multiple Formats - Download in MP3 (audio), WAV (high quality), or MP4 (video)
- ✂️ Precise Trimming - Extract specific time ranges or full tracks
- 📝 Custom Metadata - Add filename, topic/album, and artist/speaker information
- 📊 Real-time Progress - Track extraction progress with live updates
- 📜 Download History - Keep track of your recent extractions
- ⚡ Fast & Free - No registration required, completely free to use
- 🎨 Modern UI - Beautiful, responsive design that works on all devices
- Node.js (version 18 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/livingseed/mediacut.git cd mediacut -
Install dependencies
npm install
-
Set up environment variables
Create a
.env.localfile in the root directory:cp .env.example .env.local
Edit
.env.localand set your API base URL:NEXT_PUBLIC_API_BASE_URL=https://livingseed-cut.onrender.com
-
Run the development server
npm run dev
-
Open your browser
Navigate to http://localhost:3000
| Command | Description |
|---|---|
npm run dev |
Start development server on port 3000 |
npm run build |
Create optimized production build |
npm run start |
Start production server |
npm run lint |
Run ESLint to check code quality |
- Paste a YouTube URL - Copy any YouTube video link
- Choose extraction mode:
- Snippet - Extract a specific time range
- Full Track - Download the entire video audio
- Set time range (for snippets) - Enter start and end times
- Select output format - Choose MP3, WAV, or MP4
- Add metadata (optional) - Customize filename, topic, and speaker
- Click "Start Extraction" - Wait for processing to complete
- Download your file - Click the download button when ready
- Framework: Next.js 15 - React framework with App Router
- UI Library: React 19 - Latest React with concurrent features
- Language: TypeScript - Type-safe JavaScript
- Styling: Tailwind CSS - Utility-first CSS framework
- Icons: Lucide React - Beautiful icon library
- API: Custom backend service for YouTube processing
livingseedmediacut/
├── app/ # Next.js App Router
│ ├── layout.tsx # Root layout with metadata
│ ├── page.tsx # Home page
│ └── globals.css # Global styles
├── components/ # React components
│ ├── AudioExtractor.tsx # Main application component
│ ├── StatusCard.tsx # Job status display
│ ├── HistoryPanel.tsx # Download history sidebar
│ └── Icons.tsx # Icon exports
├── services/ # API services
│ └── api.ts # YouTube extraction API
├── public/ # Static assets
│ ├── manifest.json # PWA manifest
│ ├── robots.txt # Search engine directives
│ └── sitemap.xml # Site structure for SEO
├── types.ts # TypeScript type definitions
├── constants.ts # App constants
└── .env.local # Environment variables (not in git)
| Variable | Description | Required |
|---|---|---|
NEXT_PUBLIC_API_BASE_URL |
Backend API endpoint for video processing | Yes |
Note: All client-side environment variables must be prefixed with
NEXT_PUBLIC_
Snippet Mode
- Extract specific portions of videos
- Precise start and end time controls
- Perfect for sermon clips or song segments
- Supports timestamps in multiple formats (SS, MM:SS, HH:MM:SS)
Full Track Mode
- Download entire video audio
- Maintains original quality
- Limited to 4-hour videos
- MP3 - Compressed audio, smaller file size, widely compatible
- WAV - Uncompressed audio, highest quality, larger file size
- MP4 - Video format with audio, preserves visuals
Add professional metadata to your downloads:
- Custom Filename - Rename your file before download
- Topic/Album - Categorize content (e.g., "Conference 2024")
- Artist/Speaker - Tag the preacher or worship leader
- ✅ No user data collection
- ✅ All processing happens server-side
- ✅ No account required
- ✅ History stored locally in your browser
- ✅ No tracking or analytics
We welcome contributions from the community! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is maintained by the Livingseed Media Team for ministry use.
Need help? Have questions?
- 📧 Email: support@livingseed.org
- 🌐 Website: livingseed.org
- 📖 Documentation: GitHub Wiki
- Built with love by the Livingseed Media Team
- Powered by Next.js and React
- Icons by Lucide
Made with ❤️ for the ministry community
© 2025 Livingseed. All rights reserved.
