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
nodejsandnpm(Latest LTS, v16 minimum supported)ffmpeg,imagemagickandbcfor sprite generation and HLS video encoding.go-ipfswith a running daemon (alternatively IPFS Desktop may be used)
Additional requirements
- A HiveSigner application (if HiveSigner authentication is used)
- A running
siadnode for Skynet upload support. tusdrunning 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.
Full vs Remote vs Standalone vs Web
| Feature | Full Desktop | Remote Desktop | Standalone Server | Remote Web |
|---|---|---|---|---|
| Interface | Desktop App | Desktop App | Browser | Browser |
| Upload Server | Localhost | Remote | Localhost | Remote |
| Auth | Private Keys | Private Keys | Keychain & Custom Keys | Keychain & Custom Keys |
| Login Persistence | Yes | Yes | Keychain only | Keychain only |
| Upload Protocol | Filesystem | Tus | Tus | Tus |
| Steem/Hive Default Beneficiaries | 0% | 0% | 0% | 0% |
| Config Flexibility | Medium | Low | High | Low |
| Sprites Support | No | Remote Server | Yes (macOS & Linux) | Remote Server |
Supported file formats
IPFS works the best for videos with .mp4, therefore only mp4 files will be supported at this moment. Both .jpg and .png 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.
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.