Skip to content

DecentraStream is a blockchain-powered video platform for decentralized video hosting, on-chain comments, and crypto tipping. πŸš€

Notifications You must be signed in to change notification settings

TechSmith90210/decentrastream

Repository files navigation

decentrastream_header

πŸŽ₯ DecentraStream – Decentralized Video Sharing

DecentraStream is a blockchain-powered video-sharing platform that empowers creators by eliminating centralized control. Upload videos, engage with comments, and earn crypto tipsβ€”all while maintaining ownership of your content.

πŸ”— Live Demo: DecentraStream


⚑ Quick Start

🎬 Frontend

# Clone the frontend repo
git clone https://github.com/TechSmith90210/decentrastream && cd decentrastream

# Install dependencies
npm install

# Start frontend
npm run dev

πŸ”§ Backend

# Clone the backend repo
git clone https://github.com/TechSmith90210/decentrabackend && cd decentrabackend

# Install dependencies
npm install

# Start backend
npm start

πŸš€ Key Features

  • πŸ“‘ Decentralized Video Hosting – Videos stored on IPFS, ensuring censorship resistance.
  • 🎞 Adaptive Streaming – Videos are transcoded with FFmpeg and stored in multiple qualities on IPFS.
  • πŸ“ On-Chain Comments – Managed via DecentraComments.sol.
  • πŸ’° Crypto Tipping – ETH tipping powered by DecentraTipping.sol.
  • πŸ‘€ Custom Profiles – Users can create and manage profiles via DecentraProfile.sol.
  • πŸ” Web3 Authentication – Seamless MetaMask login via Wagmi v2.

πŸ›  Tech Stack

  • Frontend – Next.js, Tailwind CSS, Wagmi v2, Axios
  • Backend – Express.js, Node.js, FFmpeg, Multer (Deployed on Railway)
  • Storage – IPFS (via Pinata)
  • Blockchain – Ethereum Sepolia Testnet (Solidity Smart Contracts)

πŸ“‚ Smart Contracts

DecentraStream's smart contracts power the platform:

  • DecentraStream.sol – Stores video details and core functionality.
  • DecentraProfile.sol – Manages user profiles.
  • DecentraComments.sol – Enables on-chain comments.
  • DecentraTipping.sol – Facilitates ETH tipping.

All contracts are deployed on the Sepolia Testnet.


πŸ”‘ Environment Variables

Create a .env file in the root directory and add the following:

NEXT_PUBLIC_PROJECT_ID=your_project_id
PRIVATE_KEY=your_private_key

# Contract Addresses
NEXT_PUBLIC_VIDEO_CONTRACT_ADDRESS=0xYourVideoContractAddress
NEXT_PUBLIC_PROFILE_CONTRACT_ADDRESS=0xYourProfileContractAddress
NEXT_PUBLIC_COMMENT_CONTRACT_ADDRESS=0xYourCommentContractAddress
NEXT_PUBLIC_TIPPING_CONTRACT_ADDRESS=0xYourTippingContractAddress

NEXT_PUBLIC_BACKEND_URL=your_backend_url

NEXT_PUBLIC_PINATA_API_KEY=your_pinata_api_key
LIVEPEER_API_KEY=your_livepeer_api_key

PINATA_SECRET_API_KEY=your_pinata_secret_key
NEXT_PUBLIC_PINATA_JWT=your_pinata_jwt

πŸ”Œ Backend API

Method Endpoint Description
POST /upload Transcodes video into multiple qualities, uploads them to IPFS, and returns their IPFS CIDs.

🀝 Contributing

We welcome contributions! To contribute:

  1. Fork the repo.
  2. Create a new branch (feature/new-feature).
  3. Commit your changes.
  4. Open a pull request and let's improve DecentraStream together!

πŸ“œ License

This project is licensed under the MIT License.


About

DecentraStream is a blockchain-powered video platform for decentralized video hosting, on-chain comments, and crypto tipping. πŸš€

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published