Skip to content

Implement Music NFT Upload Form and Backend Logic #2

@angelorc

Description

@angelorc

Create a user-friendly multi-step form for uploading Music NFTs, followed by the implementation of the backend logic.

  • The form must use @bitsongjs/metadata and include fields to generate metadata similar to the provided example.
  • The form should guide the user through various steps such as:
    1. Audio upload
    2. Artwork upload, adding title and artists
    3. Adding additional metadata
    4. Choosing the type of sale (curve or fixed price)
    5. Setting sale parameters
    6. Adding royalty recipients
  • The following endpoints are proposed for handling the form data:
    • POST /me/music-nft
    • PUT /me/music-nft/<draft-id>/upload/audio
    • PUT /me/music-nft/<draft-id>/upload/artwork
    • PUT /me/music-nft/<draft-id>/metadata
    • ...

Example

const metadata = trackMetadata({
       title: 'title',
       titleLocale: 'en',
       description: toMarkdown(`this is a description`),
       artists: [
         {
           name: 'The best Artist',
           role: ArtistRole.MAIN_ARTIST,
         },
         {
           name: 'Artist 2',
           role: ArtistRole.FEATURING,
         },
       ],
       contentType: MediaAudioMimeType.WAV_VND,
       artwork: 'https://bitsong.io/artwork.png',
       audio: 'https://bitsong.io/audio.mp3',
       duration: 100,
       license: LicenseType.NO_RIGHTS_RESERVED,
       genre: TrackGenre.DANCE,
       country: Country.ITALY,
       explicit: TrackExpicit.CLEAN,
       isrc: 'IT-ABC-12345',
       authors_publishers: [
         {
           name: 'Author 1',
           role: AuthorPublisherRole.COMPOSER,
         },
         {
           name: 'Author 2',
           role: AuthorPublisherRole.LYRICIST,
         },
       ],
       cLine: '2020 The Best Label',
       pLine: '2020 The Best Label',
       liveRecording: false,
       lyrics: toMarkdown(`this is a lyrics`),
       lyricsLocale: 'en',
       previousRelease: false,
       previewStartTime: 15,
       version: 'Radio Edit',
       video: 'https://bitsong.io/video.mp4',
       iswc: 'IT-ABC-12345',
       label: 'The Best Label',
     })

This feature will streamline the process of uploading and setting up Music NFTs on the platform, making it accessible and efficient for users.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions