Library, CLI and REST API for Record.
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.
Note: View the UI/UX repo for more information.
yarn install
Note: fpcalc (chromaprint) must be installed to be able to import audio files.
brew install chromaprint ffmpeg
sudo apt-get install libchromaprint-tools
yarn start
wip
wip
const RecordNode = require('record-node')
const createIPFSDaemon = require('record-ipfsd')
const ipfsd = await createIPFSDaemon({
repo: repoPath,
ipfsBin: ipfsBinPath
})
const node = new RecordNode()
node.on('ready', async () => {
const log = await node.log.get() // or node.log.get(record.address)
})
await node.init(ipfsd)
const record = new RecordNode(options)
View default options at config.js
. Use the options
argument to specify configuration. It is an object with any of these properties:
Type | Default |
---|---|
boolean | false |
object | { port: 3000 } |
Enable http api (Default: undefined
)
Type | Default |
---|---|
object | { enabled: true } |
Enable finding peers via bitboot
MIT