# README
CreatorSpace
Introduction
CreatorSpace is a comprehensive content archiving platform designed for automatic download and archival of YouTube creators & videos.
Features
- Archive First Approach
- Automatic Video & Metadata Downloading
- Automatic Metadata Updates
- Updates saved along-side previous versions
- Single Video and Playlist Archiving
- Sponsorblock Integration
- User and Library Management
- Robust API Server
- Enhanced Security
- Self-Hostable Backend
- Optimized Video Handling
- High-Performance Execution
Tech Stack
Screenshots
Click to expand
Subscriptions - View all of your subscriptions in one place.
Creator View - View all of the videos for a specific creator.
Library View - View all of the videos in your library.
Creators - View all of the creators in your library.
Video Playback - Watch and playback videos directly from the application.
On-Disk Archival - All videos, metadata, and updates are saved to disk.
Getting Started
Prerequisites
Python is required for yt-dlp, which is used for downloading videos and metadata. FFmpeg is required for transcoding which is not currently implemented but will be in the future.
Installation
Docker Compose
The easiest way to get started is to use the provided docker-compose.yml file. This will automatically download and configure all of the required dependencies.
-
Download the docker-compose.yml file
-
Modify volume paths "/path/to/appdata/" and "/path/to/downloads/" to your desired locations
-
Modify db environment variables to your desired values, these must be input in the setup wizard
-
Run the following command
docker-compose up -d
-
Open the application in your browser at http://localhost:8080
Pre-built Binaries
You can download the pre-built binaries directly from the releases section. Available for Windows, macOS, and Linux.
Build Instructions
If you prefer to build the application yourself:
-
Clone the repository
git clone https://github.com/ryebreadgit/CreatorSpace.git
-
Change into the directory
cd CreatorSpace
-
Change into the "cmd" directory
cd cmd
-
Download dependencies
go get
-
Build the application
go build
-
Move the output to the root folder
mv CreatorSpace ..
Setting Version Variables
If you are manually building the application, you can set the version variables by passing the following flags to the build command (example uses Linux and version 0.3.1):
export APPVERSION=0.3.1
export COMMIT_HASH=$(git rev-parse --short HEAD 2>/dev/null || echo unknown 2>/dev/null)
export BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ' 2>/dev/null || echo unknown 2>/dev/null)
go build -ldflags "-X github.com/ryebreadgit/CreatorSpace/internal/api.GitCommit=$COMMIT_HASH -X github.com/ryebreadgit/CreatorSpace/internal/api.BuildDate=$BUILD_DATE -X github.com/ryebreadgit/CreatorSpace/internal/api.AppVersion=$APPVERSION" -o CreatorSpace_$APPVERSION
If these variables are not set, the application will default to "unknown" for the version information.
*Please note that this is only required for manual builds, the pre-built binaries and Dockerfile will have these variables set automatically.
Contributing
Contributions are always welcome! Please read the contribution guidelines first.
License
This project is licensed under the MIT License.