Skip to content

v4.7.2

Latest
Compare
Choose a tag to compare
@MSOB7YY MSOB7YY released this 22 Nov 19:45
· 20 commits to main since this release

🎉 New Features:

  • dfaf5f5: local video library & playback this also includes - refactor for track duration to use as milliseconds not seconds - refactor for many indexing functions - rewrite of latest queue & other similar parts logic - use global lastPlayedIndex - improvements for home page loading - faster loading for latest queue (by disabling maximumItems check) - 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
  • 0280611: replay gain (normalize volume)
  • c0ace94: left & right swipe actions for track tile, ref #333
  • e210ece: use search floating button as submit beside closing search page (switches dynamically)
  • fe96401: option to disable personalized related videos
  • 7c6607c: show video endcards option, ref #227
  • 408a4ef: listen count & latest listen date in track tile info, ref #323
  • ff4632d: channel about page, ref #227
  • dec830f: recommended sorting when clearing video/audio cache files - follows a simple algorithm to sort based on both last access time and total listens
  • 8496541: yt downloads filename builder
  • 035a9e0: allow info builders for metadata tags too as well as filenames as earlier - added more parameters
  • 052bf9f: parse description & synopsis from metadata tags
  • 3ee9f43: basic windows support * includes - integrating ffmpeg/ffprobe executables - refactor FFmpegExecuter, NamidaChannel, NamidaStorage - rename FAudioTaggerController to NamidaTaggerController - refactor paths to use platform path separator - hide settings not meant for windows using NamidaFeaturesVisibility - small ui changes - build msix packaging instructions
  • e0cdb64: pressing "jump to day" icon will open with the current day at scroll position
  • cc09b8c: in history pages, display the nth listen on card top right, and cake when its first listen
  • 4ec2636: in homepage, pressing top recents or lost memories will now open the most played page with the actual date range
  • 884c126: auto extract download info for nightcore videos by relying on description, and add genre field for downloads
  • b5386d7: "first listen" as sort option & as optional info in track tile - and re-sort tracks list after history is loaded (if neccessary)
  • a364755: flag to add yt history to local history (merge) - and add icons for other flags
  • 3f524ab: option to specify delete or cancel for downloads (including groups)
  • d8f9b9f: folder tiles can display text if .info.txt file exists in the folder i made this one for myself >
  • 233da90: importing takeout playlists now supports whole directory with multiple takeouts, duplicated playlists are merged by default - also fix date extraction in playlists csv
  • 640bb62: yt channel tabs
  • 99eaea8: sort yt playlists, ref #227
  • 30521bf: add/edit/delete comments & replies, ref #227

🛠️ Bug fixes & Improvements:

  • chore:

    • 1a34bbc: final cleanup
    • c1b3ad7: show original genre for track tile, ref #316
    • 85293ff: dont refetch pages after signing out
    • 580a36a: long press yt copy button to copy url with timestamp normal tap will copy url only
    • a2f2007: use monet icon for fallback notification & sidebar
    • 8582664: move "display remaining duration" setting to the bottom
    • fd8ba26: allow double tap lyrics gesture for yt while in local player
    • a244bae: fallback for channel id in yt miniplayer
    • 38215f1: auto set most played time to allTime only if custom was selected
    • 4595a7d: always show unavailable videos in playlists we may need to expose as a button later
    • fcee0ee: refactor internal playback to preprare for live videos (still not ready)
    • 6b825ac: small fixes - for track tile separator - nullable video stream duration
    • 00534b7: tweak popup menu animation
    • f7b6090: properly split moods using general splitter
    • c00c162: improve hiding controls mechanism for video container in yt miniplayer
    • 2c260f6: increase max video cache to 32gb & audio to 12gb
    • 29ba894: properly exit fullscreen for some endcards actions
    • 5aa8308: refactor opening video/playlists link - this came in need while implementing channel about page - added "autoVerify" for all intent filters in AndroidManifest.xml
    • 591581d: refactor views & subscribers to extensions
    • 3bf7c23: refactor settings related stuff to improve performance, now things that change frequently automatically are saved to separate file - fix 'dont show again' for battery optimization request - increase default video max cache to 8gb & audio to 4gb
    • 38ee6ac: few fixes
    • ec97084: allow precise speed/pitch/volume etc, ref #271
    • 4a71dd4: display multi language lyrics properly
    • ba5698f: big salsa - improve detection of short videos - recheck cached videos in quality menu after clearing cache - perf improve scrolling yt videos scrolling by not filtering existing files from cache map - fix reset _nextSeekSetVideoCache when needed - impeller disabled by default for now - improve stuff related to after deleting tracks - remove tags/rating/moods from ffmpeg tag editing while downloading - snackbar padding when there is a button - allow refreshing patreon/coupon & sign out & properly notify about expired token - add star history in readme
    • 0decad9: allow android auto to detect app * not tested
    • 9ee8f27: improve icons touch area, ref #192
    • 14f1bc1: fixes and cleanup
    • 1389d46: tracks generated by date range are now sorted by listen count in that range
    • 18279e6: allow opening info dialog for non-existing tracks
    • 81ce518: fixes tweaks fixes tweaks - enable replayGain by default - wont auto modify volume when playing (bcz replay gain with crossfade) - tag extraction not putting original path - use fileSize() instead of sizeInBytes() - missing tracks screen stuck bcz _m3uPlaylistsCompleter aint completing - fix m3u files with empty lines causing duplicates - thumbnails active request ids count not accurate (pls never use value++ again for maps - sussy reset volume/pitch/speed not respecting replay gain - force home screen supremacy mix to be at least 10 tracks - reduce drawer tiles v padding - wrong video when playing yt notifications - refresh track tile when date/hour format changes
    • 3624300: rework track clear dialog this also includes - logic rework for managing and clearing video cache - add clearing cache tile in all video cards
    • 0df242c: some tweakies - fix resuming after interruption then pause manually - improve playback buffer - close video stream properly when selecting audio only mode - display full folder path when similar folders exist - code remove non-used landscape fns - improve onboarding screen glow bar - change default colors - improve miniplayer top right menu icon hit test - build add profile buildType - doc add replay gain to readme
    • 3e28717: add auto coloring as a performance factor
    • f6e9123: rename "kps" to "kbps"
    • f2d7d33: more checks for race conditions in onItemPlaySelectable()
    • 86cc911: show "share url" in all video cards
    • 7d0612a: migrate for package:namico_db_wrapper v2.5.0
    • 884f887: cleanup
    • 0d6bb55: hide "remove from playlist" in playlist dialog
    • cea3a3b: more horizontal allowance for pull to refresh
    • afc35fc: smol ui change - refreshState instead of setState to always update info in channel subpage - show tooltip on tap when pressing volume bar while replay gain enabled
    • 96ac21b: improved single download filename logic
    • a6a6804: add yt flag to force refresh js player
    • 4539ab4: allow adding/removing videos in a playlist & creating playlists without membership
    • 8efe0a6: refactor some parts
    • 30d9cc1: optimize and fix most played subpages + yt horizontal list & history not refreshing properly on startup
    • 75c3715: some ui changes
    • 0fe11f5: improved missing tracks loading progress details
    • f4d92ec: copy instead of share in video menu - press to copy video link - long press to copy different stuff - share icon in right part
    • 07b15fa: add clear cache button to snackbar when video error occurs
    • 146b3ac: ui tweaks
    • a648414: allow importing multiple history files at once (yt & lastfm)
    • 950447c: download group for single videos inside a playlist is set to playlist name by default
    • 1b87a20: save group download options across sessions
    • 42ecb21: cleanup & shi
    • 69c2b07: try split track/disc number before parsing it (like 2/16)
    • 5b55900: when updating directory path, add it to indexer folders only if it or its parent doesn't exist
    • 555ddd7: fallback artwork to a yt thumbnail if exists
    • b499b43: sorting folders will prefer first number after Music in a pattern like Music 12 - 2024 instead of the last number which would be 2024
    • 2e12e4d: 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
    • 1302795: 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
    • eae8af0: change default client to web
    • 8146d51: fallback info for video page
    • 352b86e: fix info extraction from description and make it optional
    • e4080fa: dont depend on playing id for mix playlists in related videos
    • b541bfe: rename "flac" to "FLAC"
    • 636fcd9: more info about copied yt history to local
    • dab4226: ui tweaks - snackbar title-subtitle padding - snackbar padding with a button - history cards thumbnail padding
    • d842499: pressing play button when playback is already finished will now skip to next
    • b09c533: some fixes - using cached personalized related videos when acc is signed in (not the opposite) - m3u playlists path parsing - fix some equality checks - add delay for showing snack error when no network on initState() - failed tag edits will not cause the progress to stuck
    • 6cb8756: apply my settings on first start ^^ hehe
    • c4ffe59: disable media store artwork fallback when not using media store bcz it can generate non-accurate artworks
    • ecfbb7e: ui thingys
    • 92b81be: fallback info for yt miniplayer
    • 64f83d9: 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
    • 14817d3: internally manage skipping to next when playback finished
    • 12c7d91: ui tweaks - yt notification separate title & channel - bigger expansion tile in some places - use yt thumbnail for cached items list
    • f4e706f: improve details extraction for yt playlists import
    • c05a630: dont display shimmer when info available in yt miniplayer
    • e898206: fallback for channel thumbnail in video cards
    • 1e9389d: refactor waveform scale map to list - allow offset for waveform scale list
    • ac8505d: rename default playlists when downloading
    • 5c14e30: 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
    • 66cc92b: disable jumpToFirstTrackAfterFinishingQueue by default
  • fix:

    • 312b12a: pull to refresh
    • b19e94d: lyrics not updating after coming from fullscreen
    • 7041dce: 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
    • a8ee174: android 12 splash screen
    • 3021865: white screen when trying to reorder 2 items at the same time like bruh #315
    • 4e153b1: pull to refresh not detected
    • a9c5be4: sublists scrolling
    • e466fe5: pull to refresh stuck in some cases
    • bfefde5: getting yt account info after login
    • 2831fe6: include assets
    • 6204670: tapping album in go_to_album section
    • 84f561b: playback decisions with _playWhenReady
    • 6ca25fd: track tile playCount & latestListenDate not refreshing properly, ref #323
    • bfc574e: theme not refreshing after toggling pitch black setting
    • b6ec9a4: playing on next/prev when enabled
    • da6e3b3: keyboard showing after closing popup menus
    • 31b18b0: channel subpage overflow when displayed as fallback of video tab
    • 2040ae1: picking videos when source is specified
    • 8a756ee: track tile playcount not being refreshed, ref #323
    • d642e5e: allow opening external links on android 12+ - the universal wildcard is not accepted
    • 2acd505: history empty space when shorts are hidden - package:youtipie internal fix of shorts not extracting in some cases
    • 1d38cd0: broken js player code extraction in package:youtipie
    • 361963b: fallback artworks from the same folder they are now also more restricted, only known cover names will be picked instead of fuzzy matching, ref #338
    • 5263714: smol bugs
    • 889e9ff: displaying total duration on cards
    • 4cbc579: picking files with specific extensions using native file picker
    • e757eaf: description tag extraction fallback
    • b148aa6: not using dark color when auto coloring is off
    • 156742a: parsing relative paths in m3u playlist, ref #342
    • b4f6e86: pasting video id in yt offline search now brings the video
    • 365e68d: bottom padding in yt downloads page
    • ac434e6: albums in artist page are now sorted like the albums page
    • 8d598a3: false check of playback interrupted
    • 35bd5f6: refresh everything after indexer (separators/extract feat artists) change
    • 86faa34: playlist related stuff
    • c97e9b7: initial value for some ui parts like loudness enhancer
    • 044622c: volume mute when pausing and switching item quickly
    • 8a78327: not resuming after 7 seconds of track failed play dialog
    • cc3ba45: library sections (album/artist/etc) not ignoring text case
    • 38b4cc2: 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
    • 5cc8731: auto sorting of recent listens in home page
    • 9c13272: channel subpages wont display empty items when failed to fetch new items
    • 0ad1425: fallback to low res thumbnail if failed
    • 424a36f: most played page not refreshing when changing time range
    • 0266cd5: possible wrong indices while downloading playlists
    • 68c7f88: download related issues - downloading after clearing group - pausing group and resuming causes to ignore audio_only setting - wrong playlist indices in some cases
    • 2be230f: some fixes - library pages sorting - sharing empty log file - yt local playlist items not being dismissible
    • 97a7651: make sure artists/genres etc are splitted when tags are edited
    • 96631aa: thumbnail fetching and no longer saving thumb copy while fixing ytdlp thumbnails
    • cbaca0b: channel subpage not loading the first time was caused by unintentional disposal of the page by replacing their global key
    • 55771bc: editing thumbnail for videos was removing the video stream
    • 9c5805d: folders searching
    • eb7b9bb: indexer stuck while indexing (hopefully), also - accurate path being extracted - properly dispose event channel on android side
    • dc8f331: non-accurate start day when opening "jump to day" dialog in history pages
    • 8024f5b: download related issues
    • 23d742d: channels suggestion in a channel homepage not showing
    • 8b29e7a: deleting history day/multiple tracks in a day
    • 0508392: attempt fix for thumbnail downloading partial data and saving if connection lost
    • 0089b43: yt sign in, ref #321
    • bc0074a: silly mistakes >.<
    • 13a9f5c: duplicate playlists dialog showing on startup when m3u playlists are being added
  • core:

    • e155c4c: prefer using hardware decoders for efficient power usage this is a tweak for ffmpeg rendering introduced since v3.7.0
    • d597b02: rewrite yt playback behavior
    • 0222ad4: improve tags extraction, ref $294
    • f7cc288: 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, ref #294
    • 55594fa: save video thumbnails to their folder
    • 1ec99ac: change how yt videos are matched from filename now only requires v=video_id or id=video_id in order to get matched
    • a0fc75e: various fixes & tweaks, ref #342, #343
    • 25a229f: add animatedTheme setting, editable by performance mode - with other smol perf boost
    • 5dcd5cf: allow mixed player queue * this does NOT address - unified ui tile for both local and yt item - mixed selections - mixed playlists - mixed history - mixed cross-session saved queues
    • 240d00a: refactor search related stuff - running search is managed by a single int - slight improve search page checks
    • fd01506: 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
    • a16152e: allow choosing whole directory when importing yt/lastfm history
    • ab05c51: migrate tracks.json to database - and 10000000x improve performance of _addTheseTracksToAlbumGenreArtistEtc(), this can be noticed while (editing tags/reindexing tracks/playing external files)
    • 38aa558: 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()
    • 0cdc56a: allow unlimited cache size this will eliminate cache checking at startup so cpu relief yeyy
    • 1d77806: force request playlist fetching
    • 1bd172f: enable/disable "include videos" option
    • 94fcc5f: replay gain for yt section
  • perf:

    • 32414e3: break early when getting cached playable audios for a yt video
    • e3791da: faster app startup time by ~1 second achieved by using sync methods. since most of the functions are executed on startup only
    • f07a978: use context for all Obx, ObxO & ObxOClass
    • 8bdea1e: spam RepaintBoundary across app tehe ;p
    • e68a461: optimize file extensions lookup this includes refactor for many parts
    • 61ebeeb: faster history/playlists/queues & others loading using for-loops instead of for-in the initial benchmarks showed 3x improvement for 80k history entry, tho this might be due to jit compiler, assembly shows that there is a difference anyways we stay safe
    • 7063e7c: StringBuffer for building lrc obtained from search
    • a4b2f9e: async cache read for yt pages
    • 9eaefe6: migrate download tasks to a db
    • aadf432: refactor download tasks page to make it faster lists are now lazy built since we got rid of ExpansionTile
    • 2ef6cd7: migrate track stats to a db
    • 48149b7: smol optimizations for history importing
    • 694066a: faster playlist download page startup no longer calculating files count in each download subfolder
    • d51ad94: significant improve for indexer missing tracks page loading
    • c093e6e: use async db operations whereas possible
    • c55053b: 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 and fix searching after search thingy
    • c8aea7a: 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
    • 721bf5a: rewrite _addTheseTracksToAlbumGenreArtistEtc() making it significantly faster and more reliable eliminating possible related issues
    • 4d1d9ff: use RawReceivePort in some places
    • 735d0d1: migrate video details to db - this also includes rewrite for cache checking parts and other functions making it more efficient
  • code:

    • 341e5bd: refactor equality checks
    • 11597e3: refactor hashCodes
    • 3bad76c: use Enum.name instead of Enum.convertToString
    • bef2981: refactor YTWatch to use raw date millisecondsSinceEpoch
    • d993879: give PlaylistManager<T, E> what it wants
  • core(windows):

  • git:

    • dc78236: stop automatic build on push
    • 80a7674: improve issue templates
  • build:

🚨🚨 BIIIIG ATTENTION!! 🚨🚨

  • After installing it might take some time on first start due to databases migration
  • If u got issues with indexing, try disabling "include videos" in indexer settings
  • Membership actions was updated. now u can add/remove videos in playlists & create new playlists without membership <3