Namida v4.7.2 Changelog

Namida v4.7.2 Changelog

namidaco

🎉 New Features:

  • local video library & playback

  • replay gain (normalize volume) for local tracks & youtube

  • left & right swipe actions for track tile

  • use search floating button as submit beside closing search page (switches dynamically)

  • option to disable personalized related videos

  • show video endcards option

  • yt channel tabs & about page

  • listen count & latest listen date in track tile info

  • yt downloads filename builder ([check here](https://github.com/namidaco/namida?tab=readme-ov-file#streaming--youtube) for info)

  • allow info builders for metadata tags too as well as filenames as earlier

  • pressing "jump to day" icon will open with the current day at scroll position

  • in history pages, display the nth listen on card top right, and cake when its first listen

  • in homepage, pressing top recents or lost memories will now open the most played page with the actual date range

  • flag option to auto extract download info for nightcore videos by relying on description, and add `genre` field for downloads

  • "first listen" as sort option & as optional info in track tile

  • flag to add yt history to local history (merge)

  • removing download video/group, will prompt "delete" or "cancel"

  • folder tiles can display text if `.info.txt` file exists in the folder

  • importing takeout playlists now supports whole directory with multiple takeouts, duplicated playlists are merged by default & fix date extraction in playlists csv

  • recommended sorting when clearing video/audio cache files

  • sort yt playlists

  • add/edit/delete comments & replies


🛠️ Bug fixes & Improvements:

- chore:

  • allow adding/removing videos in a playlist & creating playlists without membership

  • pressing play button when playback is already finished will now skip to next

  • try split track/disc number before parsing it (like `2/16`)

  • fallback artwork to a yt thumbnail if exists

  • sorting folders will prefer first number after `Music` in a pattern like `Music 12 - 2024` instead of the last number which would be 2024

  • show original genre for track tile

  • parse `description` & `synopsis` from metadata tags

  • improve icons touch area

  • improve snackbar design

  • long press yt copy button to copy url with timestamp normal tap will copy url only

  • use monet icon for fallback notification & sidebar

  • tracks generated by date range are now sorted by listen count in that range

  • allow double tap lyrics gesture in yt local player

  • auto set most played time to `allTime` only if `custom` was selected

  • always show unavailable videos in playlists

  • properly split moods using general splitter

  • improve hiding controls mechanism for video container in yt miniplayer

  • increase max video cache to 32gb & audio to 12gb

  • allow precise speed/pitch/volume etc

  • display multi language lyrics properly

  • allow refreshing patreon/coupon & sign out & properly notify about expired token

  • allow android auto to detect app * not tested

  • allow opening info dialog for non-existing tracks

  • rework track clear dialog this also includes - logic rework for managing and clearing video cache - add clearing cache tile in all video cards

  • display full folder path when similar folders exist in track dialog

  • add auto coloring as a performance factor

  • rename "kps" to "kbps"

  • show "share url" in all video cards

  • hide "remove from playlist" in playlist dialog

  • add yt flag to force refresh js player

  • refactor some parts

  • optimize and fix most played subpages + yt horizontal list & history not refreshing properly on startup

  • some ui changes

  • improved missing tracks loading progress details

  • copy instead of share in video menu - press to copy video link - long press to copy different stuff - share icon in right part

  • add clear cache button to snackbar when video error occurs

  • allow importing multiple history files at once (yt & lastfm)

  • improve details extraction for yt playlists import

  • download group for single videos inside a playlist is set to playlist name by default

  • save group download options across sessions

  • tweak download sheet initial quality & group - video will be selected only if audioOnly disabled - for other video cards in a playlist, initial group will follow playlist name

  • ui tweaks - maximum width for snackbar button - bigger buttons - in track info dialog, put gain info at end + adjust title padding so that text is aligned with the icon - adjust padding of expansion tile to align with list tile in dialogs/etc - dont re-light a dimmed miniplayer when changing tracks - adjust padding for video cards in channel home page/etc

  • change default client to web

  • fix info extraction from description and make it optional

  • rename "flac" to "FLAC"

  • failed tag edits will not cause the progress to stuck

  • disable media store artwork fallback when not using media store bcz it can generate non-accurate artworks

  • ui thingys

  • fallback info for yt miniplayer

  • re-design yt offline search results to be horizontal - this also eliminates some code that differentiate between 3-result page & full results page, making everything unified and tied - increase timer to dispose offline search resources to 1 min

  • internally manage skipping to next when playback finished

  • use network yt thumbnail for cached items list

  • dont display shimmer when info available in yt miniplayer

  • rename default playlists when downloading

  • ui fixes - duration not refreshing in miniplayer if required - yt miniplayer not having proper padding initially - video quality menu around whole tile in dl options dialog - show more format info in local miniplayer video streams - displaying that audio is cached even tho cache list is empty

  • disable `jumpToFirstTrackAfterFinishingQueue` by default


- fix:

  • pull to refresh issues

  • lyrics not updating after coming from fullscreen

  • splitting artists/genres with blacklist the issue used to happen mostly when a blacklist is exactly the same as the artist/genre, with no additions etc

  • android 12 splash screen

  • fix most played chips not being properly rebuilt

  • fix default color tiles not enabled/disabled properly

  • fix downloaded file not being added to library properly

  • fix 'dont show again' for battery optimization request

  • fix resuming after interruption then pause manually

  • white screen when trying to reorder 2 items at the same time..

  • sublists scrolling

  • getting yt account info after login

  • wrong video when playing yt notifications

  • playback decisions with `_playWhenReady`

  • theme not refreshing after toggling pitch black setting

  • playing on next/prev when enabled

  • keyboard showing after closing popup menus

  • picking videos when source is specified

  • allow opening external links on android 12+

  • history empty space when shorts are hidden

  • fallback artworks from the same folder, they are now also more restricted, only known cover names will be picked instead of fuzzy matching

  • add smol bugs

  • picking files with specific extensions using native file picker

  • description tag extraction fallback

  • not using dark color when auto coloring is off

  • parsing relative paths in m3u playlist

  • pasting video id in yt offline search now brings the video

  • bottom padding in yt downloads page

  • albums in artist page are now sorted like the albums page

  • false check of playback interrupted

  • refresh everything after indexer (separators/extract feat artists) change

  • playlist related stuff

  • initial value for some ui parts like loudness enhancer

  • volume mute when pausing and switching item quickly

  • not resuming after 7 seconds of track failed play dialog

  • library sections (album/artist/etc) not ignoring text case

  • notification queue start index not accurate when there are comments this time we needed to check if the comment will affect the index or not while reversing the list

  • auto sorting of recent listens in home page

  • channel subpages wont display empty items when failed to fetch new items

  • fallback to low res thumbnail if failed

  • most played page not refreshing when changing time range

  • possible wrong indices while downloading playlists

  • download related issues - downloading after clearing group - pausing group and resuming causes to ignore audio_only setting - wrong playlist indices in some cases

  • some fixes - library pages sorting - sharing empty log file - yt local playlist items not being dismissible

  • make sure artists/genres etc are splitted when tags are edited

  • thumbnail fetching and no longer saving thumb copy while fixing ytdlp thumbnails

  • channel subpage not loading the first time

  • editing thumbnail for videos was removing the video stream

  • folders searching

  • indexer stuck while indexing (hopefully), also - accurate path being extracted - properly dispose event channel on android side

  • non-accurate start day when opening "jump to day" dialog in history pages

  • download related issues

  • channels suggestion in a channel homepage not showing

  • deleting history day/multiple tracks in a day

  • attempt fix for thumbnail downloading partial data and saving if connection lost

  • yt sign in

  • silly mistakes >.<


- core:

  • rewrite yt playback behavior

  • improve tags extraction

  • properly extract & use embedded rating/moods along with app-specific rating/moods and allow editing - editing app-related stats now edits the tags too. and vice versa

  • change how yt videos are matched from filename, now only requires `v=video_id` or `id=video_id` in order to get matched

  • various fixes & tweaks

  • add `animatedTheme` setting, editable by performance mode

  • allow mixed player queue (hidden setting)

  • refactor search related stuff - running search is managed by a single `int` - slight improve search page checks

  • better management for duplicated tracks/playlists addition (which applies to yt playlists section too, instead of just adding the missing ones) - this was done while doing the new merge system of importing yt takeout playlists

  • allow choosing whole directory when importing yt/lastfm history

  • add flag setting to explicity allow experimental codecs like av1 & vp9 - now webm is prefered over av1 - the process is done using `List<VideoStream>.withoutWebmIfNeccessaryOrExperimentalCodecs()`

  • allow unlimited cache size

  • force request playlist fetching

  • enable/disable "include videos" option


- perf:

  • improvements for home page loading

  • faster loading for latest queue (by disabling maximumItems check)

  • optimize file extensions lookup this includes refactor for many parts

  • break early when getting cached playable audios for a yt video

  • faster app startup time by ~1 second achieved by using sync methods. since most of the functions are executed on startup only

  • faster playlist download page startup no longer calculating files count in each download subfolder

  • significant improve for indexer missing tracks page loading

  • spam `RepaintBoundary` across app tehe ;p

  • `StringBuffer` for building lrc obtained from search

  • async cache read for yt pages

  • refactor download tasks page to make it faster

  • smol optimizations for history importing

  • use async db operations whereas possible

  • elimiate possible lag for yt offline search & yt tracks generate dialog, this was caused by huge backup info map being copied, now we load a new one in the isolate which takes longer ofc

  • cache yt info functions like `getVideoName()`, `getVideoChannelName()`, `getVideoChannelID()`, etc.. usually they can be cached in `tempVideoInfosFromStreams` but this ensures that info obtained from database is cached, providing faster cards builds, etc

  • rewrite `_addTheseTracksToAlbumGenreArtistEtc()` making it significantly faster and more reliable eliminating possible related issues, this can be noticed while (editing tags/reindexing tracks/playing external files)

  • migrate video details to db, includeing rewrite for cache checking parts and other functions making it more efficient


- following data is migrated to a database format

  • tracks & track stats

  • download tasks

  • video details (local and cached)
this means that it might take some time on first start due to migration

Report Page