Skip to main content

Video Retrieval-Augmented Chunking and Q&A Generation Toolkit

Project description

🌐 VideoRAC: Retrieval-Adaptive Chunking for Lecture Video RAG

VideoRAC Logo

🏛️ Official CSICC 2025 Implementation

"Adaptive Chunking for VideoRAG Pipelines with a Newly Gathered Bilingual Educational Dataset"

(Presented at the 30th International Computer Society of Iran Computer Conference — CSICC 2025)

Paper Dataset Python License: CC BY 4.0


📊 Project Pipeline

VideoRAC Pipeline

📖 Overview

VideoRAC (Video Retrieval-Adaptive Chunking) provides a comprehensive framework for multimodal retrieval-augmented generation (RAG) in educational videos. This toolkit integrates visual-semantic chunking, entropy-based keyframe selection, and LLM-driven question generation to enable effective multimodal retrieval.

This repository is the official implementation of the CSICC 2025 paper by Hemmat et al.

Hemmat, A., Vadaei, K., Shirian, M., Heydari, M.H., Fatemi, A. “Adaptive Chunking for VideoRAG Pipelines with a Newly Gathered Bilingual Educational Dataset.” Proceedings of the 30th International Computer Society of Iran Computer Conference (CSICC 2025), University of Isfahan.


🧩 Core Components

Module Class Description
processing.chunking.py HybridChunker Detects slide transitions using CLIP embeddings and SSIM to segment videos into coherent chunks.
processing.entropy_utils.py EntropyUtils Computes frame entropy for selecting representative keyframes.
processing.qa_generation.py VideoQAGenerator Generates structured Q&A pairs using transcripts and visual frame descriptions.

🧠 Research Background

This framework underpins the EduViQA bilingual dataset, designed for evaluating lecture-based RAG systems in both Persian and English. The dataset and code form a unified ecosystem for multimodal question generation and retrieval evaluation.

Key Contributions:

  • 🎥 Adaptive Hybrid Chunking — Combines CLIP cosine similarity with SSIM-based visual comparison.
  • 🧮 Entropy-Based Keyframe Selection — Extracts high-information frames for retrieval.
  • 🗣️ Transcript–Frame Alignment — Synchronizes ASR transcripts with visual semantics.
  • 🔍 Multimodal Retrieval — Integrates visual and textual embeddings for RAG.
  • 🧠 Benchmark Dataset — 20 bilingual educational videos with 50 QA pairs each.

⚙️ Installation

# Clone repository
git clone https://github.com/your-org/VideoRAC.git
cd VideoRAC

# Create environment & install
ython -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

🚀 Usage Example

1️⃣ Hybrid Chunking

from VideoRAC import HybridChunker

chunker = HybridChunker(alpha=0.6, threshold_embedding=0.85)
chunks, timestamps, duration = chunker.chunk("lecture.mp4")
chunker.evaluate()

2️⃣ Q&A Generation

from VideoRAC import VideoQAGenerator

def my_llm_fn(messages):
    from openai import OpenAI
    client = OpenAI()
    response = client.chat.completions.create(model="gpt-4o", messages=messages)
    return response.choices[0].message.content

urls = ["https://www.youtube.com/watch?v=2uYu8nMR5O4"]
qa = VideoQAGenerator(video_urls=urls, llm_fn=my_llm_fn)
qa.process_videos()

📈 Results Summary (CSICC 2025)

Method AR CR F Notes
VideoRAC (CLIP+SSIM) 0.87 0.82 0.91 Best performance overall
CLIP-only 0.80 0.75 0.83 Weaker temporal segmentation
Simple Slicing 0.72 0.67 0.76 Time-based only

Evaluated using RAGAS metrics: Answer Relevance (AR), Context Relevance (CR), and Faithfulness (F).


🧾 License

Licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).

You may share and adapt this work with attribution. Please cite our paper when using VideoRAC or EduViQA:

@inproceedings{hem2025videorac,
  title={Adaptive Chunking for VideoRAG Pipelines with a Newly Gathered Bilingual Educational Dataset},
  author={Hemmat, Arshia and Vadaei, Kianoosh and Shirian, Melika and Heydari, Mohammad Hassan and Fatemi, Afsaneh},
  booktitle={30th International Computer Society of Iran Computer Conference (CSICC 2025)},
  year={2025},
  organization={IEEE}
}

👥 Authors

University of Isfahan — Department of Computer Engineering


⭐ Official CSICC 2025 Implementation — Give it a star if you use it in your research! ⭐ Made with ❤️ at University of Isfahan

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

videorac-0.1.1.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

videorac-0.1.1-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file videorac-0.1.1.tar.gz.

File metadata

  • Download URL: videorac-0.1.1.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for videorac-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8fec62864c92af284bd768ca0528c473eb975339363d29d8b9f7021cfd53da39
MD5 3861ad4a3f89e27999d6212665fd8451
BLAKE2b-256 120ba3b2cfb1f78eee4cf23d85b02713d33abde28a6fcd28c76ea9f759027c7c

See more details on using hashes here.

File details

Details for the file videorac-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: videorac-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for videorac-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ca13ae6c3fca3c429c4990f4c4381068815116f2b84b28eb3329aaf80e1b6b4
MD5 dacb834b3f03210b6360858d9bc63b43
BLAKE2b-256 9b3153a0c20253eb82ef5b259c2edca7ae70d55ca9a095151e77813ef3ca6eed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page