Skip to content

pureages/HideVideo

Repository files navigation

中文 | English

HideVideo - Personal Lightweight Video Management

Unlike other video scraping libraries, HideVideo, a personal lightweight video management system, places greater emphasis on the collection of various personal videos.

img1 img2
img3 img4

Tech Stack

  • Backend: Go, Gin, GORM, SQLite3
  • Video Processing: FFmpeg

Quick Start

Installation

1. Docker (Recommended)

(1)First run
docker run -d \
  -v $(pwd)/data:/app/data \
  -p 49377:49377 \
  --name hidevideo \
  --restart unless-stopped \
  pureages/hidevideo:latest
(2)Then install ffmpeg:
docker exec hidevideo apt-get update
docker exec hidevideo apt-get install -y ffmpeg
docker exec hidevideo rm -rf /var/lib/apt/lists/*

Note: (1)The directory for adding video libraries is /app/data/……, and your video folder should be placed in $(pwd)/data(2)$(pwd) defaults to your username, but you can also customize the path!

2. Local Deployment

Prerequisites

  1. Go 1.18+
  2. FFmpeg (for video processing and cover generation)
  3. FFprobe (for video info parsing)
Clone Project
git clone https://github.com/pureages/HideVideo.git
cd HideVideo
Start Backend
go mod tidy
go run main.go

Backend will start at http://localhost:49377

Access the System

Open browser to http://localhost:49377 (or: <your-server-ip>:49377)

Default admin account:

- Username: admin
- Password: admin123

Features

  1. User Authentication - Login/logout with admin and member roles
  2. Video Library Management - Add/remove local video libraries, scan videos, generate covers
  3. Folder Mode - Browse video hierarchy like a local file manager
  4. Tag Management - (admin only) - Multi-tag filtering, tag reordering
  5. Actor Management - (admin only) - Actor library management, link videos, view actor filmography
  6. Sorting - Sort by creation time, play count, rating, or random
  7. Search - Search by tag/video name/video ID
  8. Video Display - Pagination, grid configuration (3x4, 4x3, 5x3, 6x3)
  9. Video Playback - Popup player, seek, playback speed, fullscreen, click to play/pause
  10. Rating & Comments - 10-point rating system, comment functionality
  11. Icon Generation - Auto-generate video icons
  12. User Management (admin only) - Add/delete users
  13. Settings Page - Basic settings, security settings (change password)
  14. Preference Persistence - Home sorting, items per page, grid columns, tag columns auto-saved
  15. Video Streaming - Public access, no login required
  16. Clean Invalid Indexes - Clean up database indexes for deleted videos

API Endpoints

Authentication

  • POST /api/auth/login - Login
  • POST /api/auth/logout - Logout
  • GET /api/auth/check - Check login status

Video Library

  • GET /api/libraries - Get video library list
  • POST /api/libraries - Add video library
  • DELETE /api/libraries/:id - Delete video library
  • POST /api/libraries/:id/scan - Scan video library
  • POST /api/libraries/:id/cover - Generate covers
  • POST /api/libraries/:id/icon - Generate icons
  • POST /api/libraries/clean-invalid - Clean invalid indexes
  • GET /api/libraries/:id/files - Get library file list
  • GET /api/libraries/:id/path - Get library path

Videos

  • GET /api/videos - Get video list
  • GET /api/videos/folders - Get folder tree
  • GET /api/videos/by-path - Get videos by path
  • GET /api/videos/:id - Get video details
  • GET /videos/:id/stream - Video streaming
  • PUT /api/videos/:id/rating - Update rating
  • PUT /api/videos/:id/filename - Rename video
  • POST /api/videos/:id/play - Increment play count
  • DELETE /api/videos/:id - Delete video

Video Tags

  • GET /api/videos/:id/tags - Get video tags
  • POST /api/videos/:id/tags - Add video tag
  • DELETE /api/videos/:id/tags/:tagId - Remove video tag

Video Actors

  • GET /api/videos/:id/actors - Get video actors
  • POST /api/videos/:id/actors - Add video actor
  • DELETE /api/videos/:id/actors/:actorId - Remove video actor

Comments

  • GET /api/videos/:id/comments - Get comments
  • POST /api/videos/:id/comments - Add comment
  • DELETE /api/comments/:id - Delete comment

Tags (Admin Only)

  • GET /api/tags - Get tag list
  • POST /api/tags - Add tag
  • PUT /api/tags/reorder - Reorder tags
  • PUT /api/tags/:id - Update tag
  • DELETE /api/tags/:id - Delete tag

Actors (Admin Only)

  • GET /api/actors - Get actor list
  • POST /api/actors - Add actor
  • PUT /api/actors/reorder - Reorder actors
  • PUT /api/actors/:id - Update actor
  • DELETE /api/actors/:id - Delete actor
  • GET /api/actors/:id/videos - Get actor's videos

User Management (Admin Only)

  • GET /api/users - Get user list
  • POST /api/users - Add user
  • DELETE /api/users/:id - Delete user
  • PUT /api/users/:id/password - Admin change user password
  • PUT /api/users/:id/info - Admin change user info
  • PUT /api/users/password - User change own password
  • PUT /api/users/info - User change own info
  • GET /api/users/me - Get current user info

License

MIT License

GitHub

https://github.com/pureages/HideVideo

About

A lightweight personal video management library driven by the Go language. 轻量级个人视频管理库,Go语言驱动。与刮削视频的库不同,HideVideo更注重个人一些杂七杂八的视频的收藏。适合NAS,个人服务器。

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors