Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ipfs plugin #1397

Merged
merged 56 commits into from Aug 3, 2015
Merged

Ipfs plugin #1397

merged 56 commits into from Aug 3, 2015

Conversation

multikatt
Copy link
Collaborator

http://ipfs.io or https://github.com/ipfs/go-ipfs is a global, versioned, peer-to-peer filesystem.
This plugin is so far extremely rough, but it adds the option to add or get albums from ipfs.
So if i have an album in my library I can do
beets ipfs -a [query]
This will return individual hashes for all the albums files as well as a hash for the whole album.
I can then, in another library without this album, run
beets ipfs -g [hash]
and the album will be downloaded from ipfs and imported to the library.

Again, this is a very rough demo, so it's not merge:able yet. But i'd be interesting to hear what you think.

@sampsyo
Copy link
Member

sampsyo commented Apr 7, 2015

Wow! This is a very cool project. It's quite speculative, but that means it's definitely worth exploring.

So I know where you're going: Is there anything else you'd like the plugin to do? Importing from and exporting the music itself to the DFS seems good, but—for example—are you interested in storing indices of music there?

@multikatt
Copy link
Collaborator Author

Primarily this would be for sharing between friends. Instead of zipping and mailing the album over, then the friend has to import it into beets I can just send them the hash.

@sampsyo
Copy link
Member

sampsyo commented Apr 7, 2015

Very cool. I wonder how challenging it would be to be able to beet ls your friend's library from ipfs too.

@multikatt
Copy link
Collaborator Author

That sounds possible. The hashes could be stored in the beets database and that database could be exported as json or something and added to ipfs. You could then give that json hash to your friend. That database should then be possible to use for ls and similiar.

@multikatt
Copy link
Collaborator Author

This plugin seems to be working rather well now. Here's the hash for a small three album library (on creative commons licence via Jamendo) QmWgeJoezjo8Y1PP7KXmAkAKVnsiubAydzFWSrgvcrsY76 .
I'd be really happy if someone would try it out.

This pull request has become rather long though, I like making many smaller commits. Maybe I should rebase?

@sampsyo is there any more documentation on the separate libraries you mentioned earlier? The plugin is so far still using the above syntax, which has kinda grown on me and doesn't feel as awkward anymore. But a nice transparent syntax would be cool though.

@sampsyo
Copy link
Member

sampsyo commented Aug 3, 2015

This is looking amazing! Thank you so much for your patience while I got caught up with the beets backlog.

I think we should merge this as-is. I'm sure it will continue to evolve, but this is already useful in its current state. And the set of commands is clearly complete. (And I don't mind the long commit history.)

There's not really any documentation on that deal with alternate Library implementations, and it would definitely be a big hacking job. Let's leave it for the future.

@sampsyo sampsyo merged commit cdef5fd into beetbox:master Aug 3, 2015
sampsyo added a commit that referenced this pull request Aug 3, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants