[READ-ONLY] Mirror of https://github.com/probablykasper/kadium. App for staying ontop of YouTube channels' uploads kadium.kasper.space
linux macos notifications tauri windows youtube
0

Configure Feed

Select the types of activity you want to include in your feed.

Fix error on scheduled livestreams

Kasper (Sep 9, 2025, 7:39 AM +0200) 05121401 a230ee8a

+11 -3
+1
CHANGELOG.md
··· 3 3 ## Next 4 4 - Use Shift instead of Alt for Videos/Channels page shortcuts 5 5 - Add option to disable window decorations 6 + - Fix error when a channel has scheduled livestreams 6 7 - Fix keyboard input working when modal is open 7 8 - Remove old YouTube Email Notifier migration 8 9
+1 -1
src-tauri/src/api.rs
··· 124 124 } 125 125 #[derive(Deserialize, Debug)] 126 126 pub struct ContentDetails { 127 - pub duration: String, 127 + pub duration: Option<String>, 128 128 } 129 129 #[derive(Deserialize, Debug)] 130 130 #[allow(non_snake_case)]
+9 -2
src-tauri/src/background.rs
··· 285 285 286 286 let mut videos_to_add: Vec<db::Video> = Vec::new(); 287 287 for video in videos.items { 288 + let content_details = video.contentDetails.ok_or("No contentDetails")?; 289 + let duration = match content_details.duration { 290 + Some(duration) => duration, 291 + None => { 292 + // Scheduled live streams don't have a duration 293 + continue; 294 + } 295 + }; 288 296 let publish_time = match video.liveStreamingDetails { 289 297 Some(live_streaming_details) => match live_streaming_details.actualStartTime { 290 298 Some(actual_start_time) => parse_datetime(&actual_start_time)?, ··· 295 303 }, 296 304 None => parse_datetime(&video.snippet.publishedAt)?, 297 305 }; 298 - let content_details = video.contentDetails.ok_or("No contentDetails")?; 299 - let duration_ms = parse_absolute_duration(&content_details.duration)?; 306 + let duration_ms = parse_absolute_duration(&duration)?; 300 307 videos_to_add.push(db::Video { 301 308 id: video.id, 302 309 title: video.snippet.title,