diff --git a/feeder-plugin/internetarchive-feeder/src/internetarchive.rs b/feeder-plugin/internetarchive-feeder/src/internetarchive.rs index ec14489..30ccb5b 100644 --- a/feeder-plugin/internetarchive-feeder/src/internetarchive.rs +++ b/feeder-plugin/internetarchive-feeder/src/internetarchive.rs @@ -496,6 +496,7 @@ impl InternetArchivePlugin { fields.insert("fileType".to_string(), "audio".to_string()); fields.insert("contentKind".to_string(), "track".to_string()); fields.insert("domain".to_string(), "music".to_string()); + fields.insert("workForm".to_string(), "standalone".to_string()); fields.insert("title".to_string(), track.title.clone()); fields.insert("album".to_string(), item.title.clone()); fields.insert("fileName".to_string(), track.file_name.clone()); @@ -591,9 +592,11 @@ impl InternetArchivePlugin { let mut fields: BTreeMap = BTreeMap::new(); fields.insert("fileType".to_string(), "audio".to_string()); fields.insert("contentKind".to_string(), "pack".to_string()); - // `pack` is domain-ambiguous by construction (season pack vs album - // release), so the writer supplies it — METADATA_KEYS.md §1. + // `pack` is ambiguous on both routing axes by construction (season + // pack vs album release), so the writer supplies both — + // METADATA_KEYS.md §1. An album is a closed work: `standalone`. fields.insert("domain".to_string(), "music".to_string()); + fields.insert("workForm".to_string(), "standalone".to_string()); fields.insert("title".to_string(), item.title.clone()); fields.insert("album".to_string(), item.title.clone()); if !item.creator.trim().is_empty() {