thibseisel / android-odeon

A simple but efficient music player on Android.
Apache License 2.0
68 stars 9 forks source link

Feature Request: Import ERC-721 token (NFT) Music Tracks from User's Wallet #23

Open chrishobcroft opened 3 years ago

chrishobcroft commented 3 years ago

User Journey

This feature request is for a new user journey, described thus:

as a user of Odeon, I want to be able to connect Odeon with my Wallet, and show my ERC-721 tokens (NFTs) (audio tracks, playlists).

Odeon

Below is a screenshot of the existing Odeon music player app:

Screenshot_20210830-183319_Odeon

Music for the player is currently served from the device's own filesystem.

Proposed Architecture

Components

An architecture to enable this can include the following components:

Approach

Odeon could:

  1. Connect with the wallet app on the user's device using WalletConnect
  2. Read / write ERC-721 token (NFT) data from / to Optimism
  3. Retrieve audio files and metadata content from IPFS
  4. Play audio
  5. (Advanced feature) to cache audio tracks on your device for offline playback.

Additional Thoughts

Implementation

This kind of functionality can very easily extend the existing excellent UX that Odeon already has.

For example, a "Connect Wallet" (step 1) option can live in the main Hamburger underneath "Settings", or even in "Settings". It need only require a few steps in the app to "Connect Wallet", and WalletConnect makes this veery easy!

Odeon Connect Wallet

Everything else can happen in the background... pulling in metadata and audio files (steps 2 and 3 above). It may perhaps need some extension in order to stream content from an IPFS gateway though.

As for playback (step 4), Odeon's existing audio player UI is more than capable of this.

For the advanced feature, a "Keep for Offline" checkbox for each track can live beneath "Add to playlist" and "Delete" in the options for each track:

Keep for Offline

"Delete" might need to be disabled for NFT audio tracks because it's not really possible to "delete" from IPFS.

Future Features

Future features could include:

Notes

I accept that this may appear a somewhat esoteric concept to propose. But I believe it to be based in a very sane context.

The world is very slowly coming to terms with jpeg NFTs, indicating clearly that gif, then mp3 then mp4 will follow.

NFTs for Music are emerging, as evidenced by Jonathan Mann's recent release "Right Click Save As".

Further, zero-knowledge rollup networks such as Optimism, Arbitrum and zksync are substantially increasing the capacity of blockchain networks, meanwhile reducing their cost of use.

And finally, IPFS is emerging as the default go-to storage for decentralised content and metadata, and while still maturing in some aspects, it represents a sustainable part of the architecture. This is especially true in light of the progress made by Filecoin project.

Credits

All the credit goes to you for reading all this. Bravo to you!

chrishobcroft commented 3 years ago

It is also very interesting to consider this in the context of odeon-web.

odeon-web currently integrates into Spotify as the back end. Could be interesting to adapt this to a) connect wallet via WalletConnect, b) integrate into a user's music NFTs as the back end. Then users can play content through the browser, retrieved from an IPFS gateway.

It also gives food for thought re: a data model for a music NFT.

chrishobcroft commented 3 years ago

Summary of my earlier private conversation with @mul1sh:

chrishobcroft commented 3 years ago

Project has a Gitcoin Grant here: https://gitcoin.co/grants/3432/open-source-music-software-for-evm