record-app icon indicating copy to clipboard operation
record-app copied to clipboard

Record is an immutable distributed system for audio files

Record Logo

Record App

MIT License JavaScript Style Guide standard-readme compliant FOSSA Status

Desktop, mobile and web app for Record.

Note: This repo is the React & React Native UI for Record Node.

Record is a proof of concept immutable distributed system for audio files. Built entirely on IPFS, user data is stored in a scuttlebot-esque immutable log via IPFS-Log & OrbitDB. Bootstraping/peer discovery is done via bitboot.

At it's core, the application intends to be a media library management & playback system akin to beets with the ability to join various sources of music like tomahawk player. By building everything on top of IPFS, it can become a connected network of libraries, opening the door to many other possibilities (i.e. soundcloud & musicbrainz), while still being entirely distributed and thus being able to function permanently.

Features

  • Supports: mp3, mp4, m4a/aac, flac, wav, ogg, 3gpp, aiff
  • Audio file tag support via Music Metadata
  • Audio fingerprinting via Chromaprint
  • Listening history w/ counter and timestamps
  • Tagging system for organization
  • Play / Shuffle search results & organizational tags
  • Import files from the local file system
  • Import from various web-based sources: Youtube, Soundcloud, Bandcamp, etc
  • Content deduplication
  • Play queue

Future Features

  • Metadata cleaning / import using: discogs, musicbrainz, last.fm, allmusic, beatport, streaming services, etc
  • Media server (MPD, Sonos, Plex, Kodi, Emby)
  • Audio and music analysis (Aubio, Essentia)
  • Audio Scrobbling (last.fm, libre.fm, listenbrainz)
  • Trustless timestamping / distributed copyrighting & distribution (OpenTimestamps, Nano, etc)

Record v0.0.1-alpha

More Info

  • Read the wiki for a primer.
  • Check out the roadmap to view planned features.
Installation & Usage (Development)

Install

yarn install

Usage

Desktop (Electron)

yarn start:electron

Mobile (React Native)

First, install packages needed by nodejs-mobile:

yarn install:nodejs-mobile

Then, start react native packager with:

yarn start:rn

iOS

yarn build:ios // or `yarn build:ios:dev`
yarn start:ios // or open & build with xcode `open ios/Record.xcodeproj/`

Android

yarn build:android
yarn start:android

License

MIT

FOSSA Status