A Beautiful and Feature-rich Music & Video Player with Youtube Support, Built in Flutter
Sections:
Features
Library & Indexing
Look & Feel
Streaming & Youtube
Others
Some additional cool features
Video Integration
Screenshots
Usage Preview
Installation
Permission Note
Special Thanks
Contribute
Donate
Social
LICENSE
? Features
Everything you might expect from a music player, in addition to the following:
Library & Indexing
Powerful Indexer & Tag Editor, powered by @jaudiotagger.
Artists and Genres Separators.
Prevent Duplicated Tracks.
Set Minimum File Size & Duration.
Folders-based Library system, with the ability to exclude folders as well.
Sort by almost any property of the track or the album.. etc.
Look & Feel
Material3-like Theme.
Dynamic Theming, Player Colors are picked from the current album artwork.
Home, Tracks, Albums, Artists, Genres, Playlists, Queues and Folders Pages.
Waveform Seekbar.
Lots of customizations (check out customization section).
Streaming & Youtube
Best Video & Audio Quality
Audio Only Mode
Support Downloads, Caching & Offline Playback
Video View with gestures support (swipe to control volume, double tap to seek, swipe up/pinch in to enter fullscreen, etc)
Edit tags for downloads
Optional Auto title/artist/album extraction for downloads and scrobbling
Downloads output filename builder (similar to yt-dlp)
Available formats & example
Formats:
video_id, id: video identifier
video_url, url: video full url (https://www.youtube.com/watch?v=`id`)
video_title, fulltitle: video full title
title: extracted music title from video title (Navjaxx - Fading Light (Slowed))
artist: extracted music artist from video title (Navjaxx - Fading Light (Slowed)) or else channel
genre: music genre. automatically set to Nightcore when the video title contains "nightcore".
ext: format container extension (mp4, m4a, webm). this is not necessary as it would be added automatically
channel_fulltitle: channel full name
channel, uploader: channel name (excluding - Topic)
channel_id, uploader_id: channel id
channel_url, uploader_url: channel url
timestamp: UNIX timestamp of the video (milliseconds since epoch)
upload_date: upload date of the video, converted to local time (yyyyMMdd)
view_count: view count of the video
like_count: like count of the video
description: video description. links are wrapped in a markdown style
duration: video duration in seconds (204)
duration_string: video duration formatted (3:24)
playlist_title: title of the playlist containing the video
playlist_id: id of the playlist containing the video
playlist: playlist_title if available or else playlist_id
playlist_count: total videos count in the playlist
playlist_index: index of the video in the playlists (starts at 0)
playlist_autonumber: position of the video in the playlists (starts at 1)
none: empty field. useful for tags to override any other settings
Example:
# [04] music title [(channel name)]
[%(playlist_autonumber)s] %(title)s [(%(channel)s)]
# saving to separate folders# music playlist/02. music title.m4a
%(playlist)s/%(playlist_autonumber)s. %(title)s.%(ext)s
Others:
Sleep Timer (Tracks or Minutes)
Crossfade, Play/Pause Fade Effect, along with Skip Silence.
Replay Gain (Normalize Audio)
Control pausing scenarios (calls, notifications, volume 0, etc..)
Define parameters to use for filtering tracks in search lists.
Global Tracks Selection
allows u to select from multiple places into the same list.
Never miss your sessions!
persistent and reliable queue system, your sessions are saved for later usage.
Reliable History System
despite being a flexible system (easily modified, manipulated, imported), it lets u specifiy minimum seconds/percentage to count a listen.
Most Played Playlist
find out your top tracks based on your history record.
Some additional cool features:
Smort Tracks Generation:
uuh.. with dis advanced algorithm brought for you, u can generate tracks related to one you currently listening to, typically the ones that you often listened to in the same period. based on your history.
also u can generate tracks released around the same time, or from specific range of time, from ratings, from available moods, or randomly.
Animating Thumbnail:
A thumbnail that animates with the current audio peak, looks cool.
Miniplayer Party Mode:
Applies an edge breathing effect, colors can be static or dynamic (all the colors extracted from the artwork)
Particles Effect
they speed up with the audio peak too
Track Play Mode
when playing from search, you can selected wether to play: selected track only, search results, album, first artist or first genre.
Insert after latest inserted
Want to insert multiple tracks one after each other? this will get your back.
Repeat for N times
in addition to normal repeat modes (all, none, one), this one lets you repeat the track for number of times before playing the next track.
Extract feat. & ft. artist
u won't miss the featured artists in the title, they'll have their own entry inside artists tab.
CAN IMPORT YOUTUBE HISTORY
LASTFM TOO AND MAYBE MORE IN FUTURE
you gonna find decent amount of options/customizations in the settings and inside dialogs so make sure to check them out.
Video Integration
For Local Library, Namida is capable of playing videos related to the music, Video can be found either locally or fetched from youtube
How locally?
typically looks (inside the folders you specificed) for any matching title, matching goes as following:
-- Alan walker - Faded.m4a
-- video alAn WaLkER - faDed (480p).mp4
the video filename should contain at least one of the following:
1. the music filename as shown above.
2. title & first artist of the track.
note: some cleanup is made to improve the matching, all symbols & whitespaces are ignored.
How youtube?
looks up in the track comment tag (as they are mostly done by @yt-dlp) or filename for any matching youtube link, if found then it starts downloading (and caches) and plays once it's ready, streaming here isn't a good idea as the priority goes for the music file itself.
for comment tag, any url format should get matched normally.
for filenames, it should contain v=video_id or id=video_id in order to get matched.
Since v4.0.0, full video library indexing & playback is supported, videos can now be played independently, as well as dedicated videos folder view.
Screenshots
Customization Settings
YouTube Miniplayer
Usage Preview
Animating Thumbnail
Recommends & Listens
animating_thumbnail_breathing.mp4
recommended_listens_history.mp4
Installation
Stable downloads: stable-releases
Beta downloads: beta-releases
Available variants are arm & arm64
Permission Note:
the following actions require all_files_access permission (requested when needed)
editing audio tags
creating or auto-restoring backups
saving artworks
compressing images
downloading youtube content
playing tracks from a root folder
Special Thanks:
@MSOB7YY for their youtube client, which powers youtube section.
@cameralis for their awesome miniplayer physics.
@alexmercerind for helping me out a lot.
@lusaxweb for their awesome Iconsax icon pack.
All packages' maintainers which made namida possible.