pub struct FloMetadata {Show 80 fields
pub title: Option<String>,
pub subtitle: Option<String>,
pub content_group: Option<String>,
pub album: Option<String>,
pub original_album: Option<String>,
pub set_subtitle: Option<String>,
pub track_number: Option<u32>,
pub track_total: Option<u32>,
pub disc_number: Option<u32>,
pub disc_total: Option<u32>,
pub isrc: Option<String>,
pub artist: Option<String>,
pub album_artist: Option<String>,
pub conductor: Option<String>,
pub remixer: Option<String>,
pub original_artist: Option<String>,
pub composer: Option<String>,
pub lyricist: Option<String>,
pub original_lyricist: Option<String>,
pub encoded_by: Option<String>,
pub involved_people: Option<Vec<(String, String)>>,
pub musician_credits: Option<Vec<(String, String)>>,
pub genre: Option<String>,
pub mood: Option<String>,
pub bpm: Option<u32>,
pub key: Option<String>,
pub language: Option<String>,
pub length_ms: Option<u64>,
pub year: Option<u32>,
pub recording_time: Option<String>,
pub release_time: Option<String>,
pub original_release_time: Option<String>,
pub encoding_time: Option<String>,
pub tagging_time: Option<String>,
pub copyright: Option<String>,
pub produced_notice: Option<String>,
pub publisher: Option<String>,
pub file_owner: Option<String>,
pub radio_station: Option<String>,
pub radio_station_owner: Option<String>,
pub album_sort: Option<String>,
pub artist_sort: Option<String>,
pub title_sort: Option<String>,
pub original_filename: Option<String>,
pub playlist_delay: Option<u32>,
pub encoder_settings: Option<String>,
pub url_commercial: Option<String>,
pub url_copyright: Option<String>,
pub url_audio_file: Option<String>,
pub url_artist: Option<String>,
pub url_audio_source: Option<String>,
pub url_radio_station: Option<String>,
pub url_payment: Option<String>,
pub url_publisher: Option<String>,
pub user_urls: Vec<UserUrl>,
pub comments: Vec<Comment>,
pub lyrics: Vec<Lyrics>,
pub synced_lyrics: Vec<SyncedLyrics>,
pub pictures: Vec<Picture>,
pub user_text: Vec<UserText>,
pub play_count: Option<u64>,
pub popularimeter: Option<Popularimeter>,
pub waveform_data: Option<WaveformData>,
pub spectrum_fingerprint: Option<Vec<u8>>,
pub bpm_map: Vec<BpmChange>,
pub key_changes: Vec<KeyChange>,
pub loudness_profile: Vec<LoudnessPoint>,
pub integrated_loudness_lufs: Option<f32>,
pub loudness_range_lu: Option<f32>,
pub true_peak_dbtp: Option<f32>,
pub section_markers: Vec<SectionMarker>,
pub creator_notes: Vec<CreatorNote>,
pub collaboration_credits: Vec<CollaborationCredit>,
pub remix_chain: Vec<RemixChainEntry>,
pub animated_cover: Option<AnimatedCover>,
pub cover_variants: Vec<CoverVariant>,
pub artist_signature: Option<Picture>,
pub flo_encoder_version: Option<String>,
pub source_format: Option<String>,
pub custom: HashMap<String, String>,
}Fields§
§title: Option<String>Title/songname (TIT2)
subtitle: Option<String>Subtitle/description refinement (TIT3)
content_group: Option<String>Content group description (TIT1)
album: Option<String>Album/movie/show title (TALB)
original_album: Option<String>Original album (TOAL)
set_subtitle: Option<String>Set subtitle (TSST)
track_number: Option<u32>Track number (TRCK)
track_total: Option<u32>Total tracks
disc_number: Option<u32>Disc number (TPOS)
disc_total: Option<u32>Total discs
isrc: Option<String>ISRC code (TSRC)
artist: Option<String>Lead artist/performer (TPE1)
album_artist: Option<String>Album artist/band (TPE2)
conductor: Option<String>Conductor (TPE3)
remixer: Option<String>Remixer/modifier (TPE4)
original_artist: Option<String>Original artist (TOPE)
composer: Option<String>Composer (TCOM)
lyricist: Option<String>Lyricist/text writer (TEXT)
original_lyricist: Option<String>Original lyricist (TOLY)
encoded_by: Option<String>Encoded by (TENC)
involved_people: Option<Vec<(String, String)>>Involved people list (TIPL)
musician_credits: Option<Vec<(String, String)>>Musician credits (TMCL)
genre: Option<String>Genre (TCON)
mood: Option<String>Mood (TMOO)
bpm: Option<u32>BPM (TBPM)
key: Option<String>Initial musical key (TKEY)
language: Option<String>Language (TLAN)
length_ms: Option<u64>Length in milliseconds (TLEN)
year: Option<u32>Year
recording_time: Option<String>Recording time (TDRC)
release_time: Option<String>Release time (TDRL)
original_release_time: Option<String>Original release time (TDOR)
encoding_time: Option<String>Encoding time (TDEN)
tagging_time: Option<String>Tagging time (TDTG)
copyright: Option<String>Copyright message (TCOP)
produced_notice: Option<String>Production copyright (TPRO)
publisher: Option<String>Publisher (TPUB)
file_owner: Option<String>File owner/licensee (TOWN)
radio_station: Option<String>Internet radio station name (TRSN)
radio_station_owner: Option<String>Internet radio station owner (TRSO)
album_sort: Option<String>Album sort order (TSOA)
artist_sort: Option<String>Performer sort order (TSOP)
title_sort: Option<String>Title sort order (TSOT)
original_filename: Option<String>Original filename (TOFN)
playlist_delay: Option<u32>Playlist delay in ms (TDLY)
encoder_settings: Option<String>Encoder software/settings (TSSE)
url_commercial: Option<String>Commercial info URL (WCOM)
url_copyright: Option<String>Copyright/legal URL (WCOP)
url_audio_file: Option<String>Official audio file URL (WOAF)
url_artist: Option<String>Official artist URL (WOAR)
url_audio_source: Option<String>Official audio source URL (WOAS)
url_radio_station: Option<String>Official radio station URL (WORS)
url_payment: Option<String>Payment URL (WPAY)
url_publisher: Option<String>Publisher URL (WPUB)
user_urls: Vec<UserUrl>User-defined URLs (WXXX)
comments: Vec<Comment>Comments (COMM)
lyrics: Vec<Lyrics>Unsynchronized lyrics (USLT)
synced_lyrics: Vec<SyncedLyrics>Synchronized lyrics (SYLT)
pictures: Vec<Picture>Attached pictures (APIC)
user_text: Vec<UserText>User-defined text (TXXX)
play_count: Option<u64>Play counter (PCNT)
popularimeter: Option<Popularimeter>Popularimeter/rating (POPM)
waveform_data: Option<WaveformData>Pre-computed waveform peaks for instant visualization
spectrum_fingerprint: Option<Vec<u8>>Spectral analysis data / audio fingerprint for visual EQ
bpm_map: Vec<BpmChange>BPM changes throughout the track
key_changes: Vec<KeyChange>Musical key changes with timestamps
loudness_profile: Vec<LoudnessPoint>Frame-by-frame loudness profile (ReplayGain dynamic)
integrated_loudness_lufs: Option<f32>Integrated loudness (LUFS): EBU R128
loudness_range_lu: Option<f32>Loudness range (LU)
true_peak_dbtp: Option<f32>True peak (dBTP)
section_markers: Vec<SectionMarker>Section markers (intro/verse/chorus/etc.)
creator_notes: Vec<CreatorNote>Producer commentary with timestamps
collaboration_credits: Vec<CollaborationCredit>Detailed collaboration credits
remix_chain: Vec<RemixChainEntry>Remix/sample lineage chain
animated_cover: Option<AnimatedCover>Animated cover art (GIF/WebP/short video)
cover_variants: Vec<CoverVariant>Alternative cover variants (explicit, remix, etc.)
artist_signature: Option<Picture>Artist signature image
flo_encoder_version: Option<String>flo encoder version used
source_format: Option<String>Source format (e.g., “MP3”, “FLAC”, “WAV”)
custom: HashMap<String, String>Custom key-value pairs for extensions
Implementations§
Source§impl FloMetadata
impl FloMetadata
Sourcepub fn with_basic(
title: Option<String>,
artist: Option<String>,
album: Option<String>,
) -> Self
pub fn with_basic( title: Option<String>, artist: Option<String>, album: Option<String>, ) -> Self
Create metadata with basic fields
Sourcepub fn from_msgpack(data: &[u8]) -> Result<Self, Error>
pub fn from_msgpack(data: &[u8]) -> Result<Self, Error>
Deserialize from MessagePack bytes
Sourcepub fn add_picture(
&mut self,
mime_type: &str,
picture_type: PictureType,
data: Vec<u8>,
)
pub fn add_picture( &mut self, mime_type: &str, picture_type: PictureType, data: Vec<u8>, )
Add a picture
Sourcepub fn front_cover(&self) -> Option<&Picture>
pub fn front_cover(&self) -> Option<&Picture>
Get the front cover picture if present
Sourcepub fn any_picture(&self) -> Option<&Picture>
pub fn any_picture(&self) -> Option<&Picture>
Get the first picture of any type
Sourcepub fn add_comment(&mut self, text: &str, language: Option<&str>)
pub fn add_comment(&mut self, text: &str, language: Option<&str>)
Add a comment
Sourcepub fn add_lyrics(&mut self, text: &str, language: Option<&str>)
pub fn add_lyrics(&mut self, text: &str, language: Option<&str>)
Add unsynchronized lyrics
Sourcepub fn add_synced_lyrics_line(
&mut self,
timestamp_ms: u64,
text: &str,
language: Option<&str>,
)
pub fn add_synced_lyrics_line( &mut self, timestamp_ms: u64, text: &str, language: Option<&str>, )
Add synchronized lyrics line
Sourcepub fn set_custom(&mut self, key: &str, value: &str)
pub fn set_custom(&mut self, key: &str, value: &str)
Set a custom field
Sourcepub fn get_custom(&self, key: &str) -> Option<&str>
pub fn get_custom(&self, key: &str) -> Option<&str>
Get a custom field
Sourcepub fn add_section(
&mut self,
timestamp_ms: u64,
section_type: SectionType,
label: Option<&str>,
)
pub fn add_section( &mut self, timestamp_ms: u64, section_type: SectionType, label: Option<&str>, )
Add a section marker
Sourcepub fn add_bpm_change(&mut self, timestamp_ms: u64, bpm: f32)
pub fn add_bpm_change(&mut self, timestamp_ms: u64, bpm: f32)
Add a BPM change point
Sourcepub fn add_key_change(&mut self, timestamp_ms: u64, key: &str)
pub fn add_key_change(&mut self, timestamp_ms: u64, key: &str)
Add a key change point
Sourcepub fn add_creator_note(&mut self, text: &str, timestamp_ms: Option<u64>)
pub fn add_creator_note(&mut self, text: &str, timestamp_ms: Option<u64>)
Add a creator note
Trait Implementations§
Source§impl Clone for FloMetadata
impl Clone for FloMetadata
Source§fn clone(&self) -> FloMetadata
fn clone(&self) -> FloMetadata
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more