diff --git a/app/src/main/java/com/github/libretube/helpers/ImportHelper.kt b/app/src/main/java/com/github/libretube/helpers/ImportHelper.kt index d6fed20a5..d5c447d35 100644 --- a/app/src/main/java/com/github/libretube/helpers/ImportHelper.kt +++ b/app/src/main/java/com/github/libretube/helpers/ImportHelper.kt @@ -162,16 +162,17 @@ object ImportHelper { } ImportFormat.FREETUBE -> { - val playlistFile = activity.contentResolver.openInputStream(uri)?.use { inputStream -> - val text = inputStream.bufferedReader().readText() - runCatching { - text.lines().map { line -> - JsonHelper.json.decodeFromString(line) - } - }.getOrNull() ?: runCatching { - listOf(JsonHelper.json.decodeFromString(text)) - }.getOrNull() - } + val playlistFile = + activity.contentResolver.openInputStream(uri)?.use { inputStream -> + val text = inputStream.bufferedReader().readText() + runCatching { + text.lines().map { line -> + JsonHelper.json.decodeFromString(line) + } + }.getOrNull() ?: runCatching { + listOf(JsonHelper.json.decodeFromString(text)) + }.getOrNull() + } val playlists = playlistFile.orEmpty().map { playlist -> // convert FreeTube videos to list of string @@ -287,7 +288,7 @@ object ImportHelper { JsonHelper.json.decodeFromStream>(it) } .orEmpty() - .filter { it.activityControls.contains("YouTube watch history") && it.subtitles.isNotEmpty() } + .filter { it.activityControls.contains("YouTube watch history") && it.subtitles.isNotEmpty() && it.titleUrl.isNotEmpty() } .reversed() .map { val videoId = it.titleUrl.substring(it.titleUrl.length - 11) diff --git a/app/src/main/java/com/github/libretube/obj/YouTubeWatchHistoryFileItem.kt b/app/src/main/java/com/github/libretube/obj/YouTubeWatchHistoryFileItem.kt index 395887f16..54009187d 100644 --- a/app/src/main/java/com/github/libretube/obj/YouTubeWatchHistoryFileItem.kt +++ b/app/src/main/java/com/github/libretube/obj/YouTubeWatchHistoryFileItem.kt @@ -4,10 +4,10 @@ import kotlinx.serialization.Serializable @Serializable data class YouTubeWatchHistoryFileItem( - val header: String, - val time: String, - val title: String, - val titleUrl: String, + val header: String = "", + val time: String = "", + val title: String = "", + val titleUrl: String = "", val activityControls: List = emptyList(), val products: List = emptyList(), val subtitles: List = emptyList()