MCPcopy Index your code
hub / github.com/Chirag-And-Dheeraj/Dekho

github.com/Chirag-And-Dheeraj/Dekho @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
145 symbols 340 edges 26 files 12 documented · 8%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Dekho: An on-demand video streaming server

Some Achievements ✨

We launched Dekho on Peerlist in the 3rd Week of January 2025 and we had a pretty good response.

Project of the week Project of the week

Star History

Star History Chart

Overview

Dekho is a research and study project aimed at understanding and learning about audio and video streaming. Our primary focus was on implementing the HLS (HTTP Live Streaming) protocol to build an on-demand video streaming server.

Setup Instructions

Basic Steps

  • Clone the repository
  • Create an Appwrite storage bucket
  • Make sure that you make a note of APPWRITE_KEY, APPWRITE_PROJECT_ID and the BUCKET_ID.

With Docker

  • Install docker-compose on your machine.
  • cd into the root of the repository.
  • Create a .env file using .env.docker as a reference.
  • Just run docker-compose up to start the server.

Without Docker

  • Install the make utility because we have created a Makefile to ease the setup
  • Now we are moving to the dependency installation steps.
  • This project needs go version go1.23, ffmpeg utility and psql (PostgreSQL) 16.3 database.
  • To install these, and the Go dependencies, run make install-dev.
  • The make install-dev takes care of installing PostgreSQL, Go, FFMpeg, golang-migrate and Go dependencies.
  • Run make start-postgres to start the postgres service.
  • Create a database user by running this command sudo -u postgres createuser -s username_here -P
  • -P will prompt for a password.
  • Enter the psql shell by running this command sudo -u postgres psql and create a database by running CREATE DATABASE <database_name>;.
  • Create a .env file using .env.local as a reference.
  • Once the dependencies are installed successfully, run make cleanstart.
  • This command will create all the necessary folders and start the server on http://127.0.0.1:8000
  • If you just want to run the server, run: make start
  • If you just want to clean up, run: make clean

Technologies Used

  • Server: Go
  • Database: PostgreSQL
  • Storage: Appwrite Storage
  • Video Processing: FFMPEG for breaking down videos into .ts chunks
  • Video Player: HLS.js
  • Frontend: HTML, CSS, JS

Project Architecture

Architecture Diagram

Key Resources

Our journey has been greatly enriched by the insights and guidance from various resources. A pivotal article that set us on the right path is "Learning the basics of video streaming with Golang" by Rohit Mundra.

For a comprehensive list of resources that have been instrumental in our learning and development process, please refer to our documentation.

Getting Involved

We welcome any queries or contributions to the project. If you have any questions or suggestions, please feel free to reach out to us:

Updates and Blog Posts

Stay tuned for upcoming blog posts and updates on our progress. If you haven't heard from us in a while, feel free to bug us about it!

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 64
Method 48
Struct 22
Class 6
TypeAlias 3
Interface 2

Languages

Go75%
TypeScript25%

Modules by API surface

types/types.go23 symbols
utils/utils.go21 symbols
services/user.go13 symbols
static/videoList/videoItem.js12 symbols
main.go12 symbols
repositories/user.go11 symbols
static/toast.js10 symbols
static/videoList/videoContainer.js8 symbols
controllers/video.go7 symbols
controllers/user.go5 symbols
config/config.go5 symbols
database/database.go4 symbols

For agents

$ claude mcp add Dekho \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page