MCPcopy Index your code
hub / github.com/ZeStream/zestream-server

github.com/ZeStream/zestream-server @main

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

ZeStream - An adaptive video streaming server

What is adaptive video streaming?

Ever wonder how Youtube/Netflix/Tiktok changes the resolution of the video, you are watching depending on your network speed?

You want to implement the similar feature in your own product, without any hassle?

ZeStream is the backend service which you can self-deploy, and use its API to process the video and store it on a storage bucket like AWS S3/Google Cloud/Azure....

Architecture

Implementation

  1. User calls API to prcoess the video.
  2. The API controller queues the event in a message queue (Kafka) and calls the given webhook.
  3. A ZeStream worker polls the event from queue which contains file url
  4. Worker fetches the file to local disk
  5. Another worker starts a FFmpeg thread to process the video
  6. Output is stored in local disk
  7. After FFmpeg finishes processing, another worker pushes the files to cloud storage
  8. CDN is connected to storage for fetching the files.

Dev Setup

  1. Install Golang v1.9 from Go.dev
  2. Fork this repo, and clone the forked repo
  3. cd zestream-server
  4. go get .
  5. go run main.go

How to contribute?

Follow contribution guidelines

Extension points exported contracts — how you extend this code

Uploader (Interface)
(no doc) [3 implementers]
utils/upload.go

Core symbols most depended-on inside this repo

LogErr
called by 7
utils/helper.go
GetDownloadFilePathName
called by 4
utils/files.go
GetCloudSession
called by 3
configs/cloud.go
failOnError
called by 3
configs/rabbitmq.go
Fetch
called by 3
utils/fetch.go
GetGCPClient
called by 2
configs/cloud.go
IsEmpty
called by 2
types/video.go
GetOutputFilePathName
called by 2
utils/files.go

Shape

Function 57
Struct 9
Method 8
TypeAlias 8
Interface 1

Languages

Go100%

Modules by API surface

utils/upload.go19 symbols
service/dash.go11 symbols
utils/files.go8 symbols
configs/cloud.go6 symbols
utils/helper.go5 symbols
types/video.go5 symbols
constants/ffmpeg.go3 symbols
configs/rabbitmq.go3 symbols
configs/configs.go3 symbols
service/consumer.go2 symbols
main.go2 symbols
controllers/test.go2 symbols

For agents

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

⬇ download graph artifact