Skip to content

A sophisticated video generation project that creates beautiful video renderings of Iqbal's Farsi poetry using Remotion and React. This project combines modern web technologies with classical poetry to create engaging visual content.

License

Notifications You must be signed in to change notification settings

hhsadiq/zinderood

Repository files navigation

ZindeRood Video Generation

License: MIT Node.js Version Remotion

A sophisticated video generation project that creates beautiful video renderings of Iqbal's Farsi poetry using Remotion and React. This project combines modern web technologies with classical poetry to create engaging visual content for various social media platforms and YouTube.

📖 Overview

ZindeRood helps create professional video content from poetry text and audio files. It supports:

  • Short-form vertical videos (9:16) for social media platforms
  • Long-form horizontal videos (16:9) for YouTube
  • Rubai, poem and audio monologue (message) type videos
  • Batch processing for multiple videos
  • Video combination for compilations

📊 Impact & Examples

ZindeRood has become a significant platform for sharing Iqbal's poetry through visual content:

  • 250+ Videos Generated: Automated video production across multiple formats
  • 300k+ Monthly Views: Growing audience across all platforms
  • Multi-Platform Presence: Active on YouTube, Facebook, Instagram, and TikTok
  • Diverse Content Types: From short-form reels to long-form poetry recitations

🎥 Featured Examples

🌐 Official Channels

YouTube
YouTube
Facebook
Facebook
Instagram
Instagram
TikTok
TikTok

YouTube Content

Horizontal Poetry Example
🎬 Horizontal Poetry
Collection Example
📚 Collection: 163 Rubais
Audio Monologue Example
🎙️ Audio Monologue

Other Platforms

🌟 Features

  • Multiple Content Types
    • Rubai (quatrain) rendering
    • Complete poem visualization
    • Audio monologues (with audiogram visualisations)
    • Social media reels from poems
  • Flexible Layouts
    • Vertical (9:16) for social media - 1080x1920
    • Horizontal (16:9) for YouTube - 1920x1080
  • Advanced Capabilities
    • Automated video generation
    • Real-time preview in development
    • Batch processing support
    • Video compilation tools
    • Custom transitions and animations
    • Automatic reel generation from poems
  • Technical Features
    • React & Remotion framework
    • TypeScript support
    • Tailwind CSS styling
    • Google Fonts integration

🚀 Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm (v11.1.0 or higher)
  • FFmpeg (latest version) - Required for batch processing and video combination features
    • Note: FFmpeg must be installed locally on your system as it's not included in npm dependencies
    • This is because the project requires newer FFmpeg features not available in the npm package version
    • Installation instructions:
      • macOS: brew install ffmpeg
      • Ubuntu/Debian: sudo apt install ffmpeg
      • Windows: Download from FFmpeg website

Installation

git clone https://github.com/hhsadiq/zinerood.git
cd zinerood
npm install

After installation, make sure to set up your .env file as described in the Configuration section.

📝 Content Requirements

Required Files

Each video generation requires three input files:

input-folder/
├── poem.txt        # Poetry text with Farsi, Urdu, and English translations
├── markers.csv     # Audio timing markers for synchronization
└── audio.wav       # Audio recitation file

Project Structure

zinerood/
├── src/                # Source files
├── public/             # Static assets
├── generate-*.js       # Video generation scripts
├── combined/           # Directory for video compilation
├── remotion.config.ts  # Remotion configuration
└── .env               # Environment configuration

⚙️ Configuration

Environment Variables

Create a .env file in the root directory:

# Required Configuration
REMOTION_POEM_BASE_PATH=/path/to/content  # Content directory path
REMOTION_LAYOUT=vertical|horizontal        # Video orientation
REMOTION_TYPE=poem|rubai|message          # Content type

🎬 Usage Modes

1. Interactive Development Mode

Real-time preview and development environment:

npm start
  • Uses .env configuration
  • Live preview of changes
  • Ideal for testing and fine-tuning

2. Batch Processing Mode

Generate multiple videos in sequence:

# For Rubais
npm run build-rubai --poemBase=/path/to/rubai/folders

# For Poems
npm run build-poem --poemBase=/path/to/poem/folders

# Clean Persian text in poems (removes Urdu special characters)
# Set in .env file
# REMOTION_POEM_BASE_PATH=/path/to/poem
npm run clean-poem

# Genreate reels from the main poem - read the reel generation section
# Set in .env file
# REMOTION_POEM_BASE_PATH=/path/to/poem
# REMOTION_REELS_RANGES="1-3,5-8,15-19,23-27,31-36"
npm run build-reels

Example batch directory structure:

poetry-project/
├── poems/
│   ├── masnavi-01/
│   │   ├── poem.txt
│   │   ├── markers.csv
│   │   ├── audio.wav
│   │   └── upload/
│   │       ├── reel-1/
│   │       │   ├── poem.txt
│   │       │   ├── markers.csv
│   │       │   ├── audio.wav
│   │       │   └── reel.wav
│   │       └── reel-2/
│   │           └── [same structure]
│   └── masnavi-02/
│       ├── poem.txt
│       ├── markers.csv
│       ├── audio.wav
│       └── upload/
│           └── [same structure]
└── output/
    └── [generated videos]

Reel Generation

Create engaging social media reels from your poetry videos. Once you have a working video for your main poem, this feature automatically generates short, vertical clips for specific couplet ranges, perfect for Instagram, TikTok, and Facebook.

  • Content Selection: Choose specific sections of your poem to create reels
  • Audio Processing: Automatic audio extraction and enhancement
  • Text Synchronization: Perfect timing between text and audio
  • Social Media Ready: Optimized for vertical viewing
  • Batch Processing: Generate multiple reels at once

3. Video Combination Mode

Combine multiple videos into a single compilation:

npm run combine
  • Place source videos in /combined directory
  • Outputs a single combined video file

🧪 Development

Testing

npm test

Configuration Files

  • remotion.config.ts - Remotion settings
  • tailwind.config.js - Styling configuration
  • tsconfig.json - TypeScript configuration

For development and contribution guidelines, please refer to the CONTRIBUTING.md file.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

Note: Some Remotion features may require a company license. See Remotion License Terms.

🙏 Acknowledgments

  • Remotion - Video generation framework
  • Tailwind CSS - Utility-first CSS framework
  • All contributors and maintainers

📫 Support

  • Open an issue in this repository
  • Contact the maintainers

About

A sophisticated video generation project that creates beautiful video renderings of Iqbal's Farsi poetry using Remotion and React. This project combines modern web technologies with classical poetry to create engaging visual content.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published