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

Implement missing metadata #15

Open
15 of 79 tasks
Sinono3 opened this issue Jul 23, 2021 · 0 comments
Open
15 of 79 tasks

Implement missing metadata #15

Sinono3 opened this issue Jul 23, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@Sinono3
Copy link
Owner

Sinono3 commented Jul 23, 2021

Here's a list of all metadata elements for each platform. There are so much of these that we'll miss a lot of them if we just implement the intersection of all of them. My idea is to later separate each platform implementation in their own crate, with all of the features, and keep a cross-platform version on souvlaki.

MPRIS:

  • mpris:trackid (D-Bus path): A unique identity for this track within the context of an MPRIS object (eg: tracklist).
  • mpris:length (64-bit integer): The duration of the track in microseconds.
  • mpris:artUrl (URI): The location of an image representing the track or album. Clients should not assume this will continue to exist when the media player stops giving out the URL.
  • xesam:album (String): The album name.
  • xesam:albumArtist (List of Strings): The album artist(s).
  • xesam:artist (List of Strings): The track artist(s).
  • xesam:asText (String): The track lyrics.
  • xesam:audioBPM (Integer): The speed of the music, in beats per minute.
  • xesam:autoRating (Float): An automatically-generated rating, based on things such as how often it has been played. This should be in the range 0.0 to 1.0.
  • xesam:comment (List of Strings): A (list of) freeform comment(s).
  • xesam:composer (List of Strings): The composer(s) of the track.
  • xesam:contentCreated (Date/Time): When the track was created. Usually only the year component will be useful.
  • xesam:discNumber (Integer): The disc number on the album that this track is from.
  • xesam:firstUsed (Date/Time): When the track was first played.
  • xesam:genre (List of Strings): The genre(s) of the track.
  • xesam:lastUsed (Date/Time): When the track was last played.
  • xesam:lyricist (List of Strings): The lyricist(s) of the track.
  • xesam:title (String): The track title.
  • xesam:trackNumber (Integer): The track number on the album disc.
  • xesam:url (URI): The location of the media file.
  • xesam:useCount (Integer): The number of times the track has been played.
  • xesam:userRating (Float): A user-specified rating. This should be in the range 0.0 to 1.0.

MacOS:

  • albumArtist: String?: The primary performing artist for an album.
  • albumArtistPersistentID: MPMediaEntityPersistentID: The persistent identifier for the primary performing artist for an album.
  • albumPersistentID: MPMediaEntityPersistentID: The persistent identifier for an album.
  • albumTitle: String?: The title of an album, such as Live on Mars, rather than the title of an individual song on the album, such as “Crater Dance.”
  • albumTrackCount: Int: The number of tracks for the album that contains the media item.
  • albumTrackNumber: Int: The track number of the media item, for a media item that is part of an album.
  • artist: String?: The performing artists for a media item — which may vary from the primary artist for the album that a media item belongs to.
  • artistPersistentID: MPMediaEntityPersistentID: The persistent identifier for an artist.
  • artwork: MPMediaItemArtwork?: The artwork image for the media item.
  • assetURL: URL?: The URL that points to the media item.
  • beatsPerMinute: Int: The number of musical beats per minute for the media item.
  • bookmarkTime: TimeInterval: The time of the user’s most recent interaction with the bookmark in the media item.
  • isCloudItem: Bool: A Boolean value that indicates whether the media item is an iCloud Music Library item.
  • comments: String?: Textual information about the media item.
  • isCompilation: Bool: A Boolean value that indicates whether the media item is part of a compilation.
  • isPreorder: Bool: A Boolean value that indicates whether the media item is a preorder.
  • composer: String?: The musical composer for the media item.
  • composerPersistentID: MPMediaEntityPersistentID: The persistent identifier for a composer.
  • dateAdded: Date: The date the user adds the media item to the library.
  • discCount: Int: The number of discs for the album that contains the media item.
  • discNumber: Int: The disc number of the media item, for a media item that is part of a multidisc album.
  • isExplicitItem: Bool: A Boolean value that indicates whether the media item has explicit (adult) lyrics or language.
  • genre: String?: The music or film genre of the media item.
  • genrePersistentID: MPMediaEntityPersistentID: The persistent identifier for a genre.
  • lastPlayedDate: Date?: The most recent play date of the media item.
  • lyrics: String?: The lyrics for the media item.
  • mediaType: MPMediaType: The media type of the media item.
  • persistentID: MPMediaEntityPersistentID: The persistent identifier for the media item.
  • playCount: Int: The number of times the user plays the media item.
  • playbackDuration: TimeInterval: The playback duration of the media item.
  • playbackStoreID: String: The nonlibrary identifier for a media item.
  • podcastPersistentID: MPMediaEntityPersistentID: The persistent identifier for an audio podcast.
  • podcastTitle: String?: The title of a podcast, such as This Martian Drudgery, rather than the title of an individual episode of a podcast, such as “Episode 12: Another Cold Day at the Pole.”
  • hasProtectedAsset: Bool: A Boolean value that indicates whether the media item has a protected asset.
  • rating: Int: The user-specified rating of the media item.
  • releaseDate: Date?: The date of the media item’s first public release.
  • skipCount: Int: The number of times the user skips playing the media item.
  • title: String?: The title or name of the media item.
  • userGrouping: String?: Grouping information for the media item.

Windows:

  • Type: Defines values for the types of media playback (Unknown, Music, Video and Image).
  • Thumbnail: Gets or sets thumbnail image associated with the currently playing media.
  • AppMediaId: Gets or sets the media id of the app.
  • MusicProperties:
    • AlbumArtist: Gets or sets the name of the album artist.
    • AlbumTitle: Gets or sets the album title.
    • AlbumTrackCount: Gets or sets the album track count.
    • Artist: Gets or set the name of the song artist.
    • Genres: Gets a modifiable list of strings representing genre names.
    • Title: Gets or set the title of the song.
    • TrackNumber: Gets or sets the track number.
  • VideoProperties:
    • Genres: Gets a modifiable list of strings representing genre names.
    • Subtitle: Gets or sets the subtitle of the video.
    • Title: Gets or sets the title of the video.
  • ImageProperties:
    • Subtitle: Gets or sets the subtitle of the image.
    • Title: Gets or sets the title of the image.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant