From a5f86fb96961c2502975703334d785b5907c8265 Mon Sep 17 00:00:00 2001 From: bhavit04 Date: Sun, 19 Jul 2026 20:03:56 +0530 Subject: [PATCH] fix: use microseconds for YouTube track duration (#3021) The metadata plugin sent the duration as inSeconds, but SpotubeAudioSourceMatchObject.duration is a Duration that gets read back as microseconds, so YouTube tracks showed 0:00 in the queue. Switch both callbacks to inMicroseconds, and fall back to 0 since the field can't be null and some videos don't report a duration. --- lib/services/metadata/metadata.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/services/metadata/metadata.dart b/lib/services/metadata/metadata.dart index 5860e0d6..a9c21c77 100644 --- a/lib/services/metadata/metadata.dart +++ b/lib/services/metadata/metadata.dart @@ -90,7 +90,7 @@ class MetadataPlugin { 'id': video.id.value, 'title': video.title, 'author': video.author, - 'duration': video.duration?.inSeconds, + 'duration': video.duration?.inMicroseconds ?? 0, 'description': video.description, 'uploadDate': video.uploadDate?.toIso8601String(), 'viewCount': video.engagement.viewCount, @@ -105,7 +105,7 @@ class MetadataPlugin { 'id': video.id.value, 'title': video.title, 'author': video.author, - 'duration': video.duration?.inSeconds, + 'duration': video.duration?.inMicroseconds ?? 0, 'description': video.description, 'uploadDate': video.uploadDate?.toIso8601String(), 'viewCount': video.engagement.viewCount,