diff --git a/Cargo.lock b/Cargo.lock
index 80f47b0..e1e8403 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1635,8 +1635,7 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 [[package]]
 name = "opus_headers"
 version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afbb993947f111397c2bc536944f8dac7f54a4e73383d478efe1990b56404b60"
+source = "git+https://github.com/agersant/opus_headers?branch=multivalue#9850b2d369b12794ad62d4c2bf61e4645183ff49"
 
 [[package]]
 name = "orion"
diff --git a/Cargo.toml b/Cargo.toml
index 153c23c..86049c0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -36,7 +36,8 @@ nohash-hasher = "0.2.0"
 notify = { version = "6.1.1", default-features = false }
 notify-debouncer-full = { version = "0.3.1", default-features = false }
 num_cpus = "1.14.0"
-opus_headers = "0.1.2"
+# TODO upstream PR: https://github.com/yboettcher/opus_headers/pull/7
+opus_headers = { git = "https://github.com/agersant/opus_headers", branch = "multivalue" }
 pbkdf2 = "0.11"
 rand = "0.8"
 rayon = "1.10.0"
diff --git a/src/app/formats.rs b/src/app/formats.rs
index 57fd05f..7e21101 100644
--- a/src/app/formats.rs
+++ b/src/app/formats.rs
@@ -429,7 +429,10 @@ fn reads_multivalue_fields() {
 		expected_with_duration
 	);
 	// TODO Test m4a support (likely working). Pending https://tickets.metabrainz.org/browse/PICARD-3029
-	// TODO Opus support.
+	assert_eq!(
+		read_metadata(Path::new("test-data/multivalue/multivalue.opus")).unwrap(),
+		expected_without_duration
+	);
 	assert_eq!(
 		read_metadata(Path::new("test-data/multivalue/multivalue.ape")).unwrap(),
 		expected_without_duration
diff --git a/test-data/multivalue/multivalue.opus b/test-data/multivalue/multivalue.opus
new file mode 100644
index 0000000..e1e8c8c
Binary files /dev/null and b/test-data/multivalue/multivalue.opus differ