Skip to content

oneloveipfs/ipfsVideoUploader

Repository files navigation

OneLoveIPFS Discord PRs Welcome License

OneLoveIPFS Uploader

Cross-platform IPFS uploader for 3Speak and DTube. Can be run as a standalone upload server or a locally-running Electron app. Also supports Skynet protocol.

Dependencies required

  • nodejs and npm (Latest LTS, v16 minimum supported)
  • ffmpeg, imagemagick and bc for sprite generation
  • kubo (formerly go-ipfs) with a running daemon (alternatively IPFS Desktop may be used)

Additional requirements

  • A HiveSigner application (if HiveSigner authentication is used)
  • A running skyd node for Skynet upload support.
  • tusd running daemon when running as standalone upload server, which can be installed and configured here.

Installation

There are several ways in which OneLoveIPFS uploader can be installed and run.

Configuration

The ways in which configuration is done depends on how OneLoveIPFS uploader is run. The options may be found here.

OneLoveIPFS data dir, which is the working directory for uploader databases and files can be set with ONELOVEIPFS_DATA_DIR environment variable.

Local vs Remote vs Standalone vs Web

Feature Local (Desktop) Remote (Desktop) Standalone Server Remote Web
Interface Desktop App Desktop App Browser Browser
Upload Server Localhost Remote Localhost Remote
Avalon Login Methods Plaintext Plaintext Keychain / Plaintext Keychain / Plaintext
Hive Login Methods HiveAuth / Plaintext HiveAuth / Plaintext HiveAuth / Keychain / HiveSigner HiveAuth / Keychain / HiveSigner
Login Persistence Yes Yes Keychain only Keychain only
Upload Protocol Filesystem Tus Tus Tus
Config Flexibility Medium Low High Low
Sprites Support No Remote Server Yes (macOS & Linux) Remote Server
3Speak Publishing Yes Yes No No

Supported file formats

IPFS works the best for videos with .mp4, however video/mp4 and video/quicktime mime types will be supported. JPG, PNG and GIF file formats are supported for thumbnail uploads.

RESTful HTTP API & IPSync

API calls for authentication, file uploads, hashes and usage data are documented here. Resumable video upload API documentation may be found here.

Important notice on 3Speak uploads

All 3Sepak videos MUST go through 3Speak's centralized API and encoding system as of v3.0 release. There is no other way to get them to play on 3speak.tv website.

How to contribute?

If you found any ways to improve on the code, or found any bugs, feel free to create a pull request on the GitHub repository. You can also contact me on Discord techcoderx#7481 if you have any enquiries.