Skip to content
namidacoPublic

Repository files navigation

Namida

A Beautiful and Feature-rich Music & Video Player with Youtube Support, Built in Flutter

Hits-of-Code

Β 

Documentation

New to Namida or want to discover more? Checkout the docs here

Sections:

πŸŽ‰ Features

  • Everything you might expect from a music player, in addition to the following:

Library & Indexing

  • Powerful Indexer & Tag Editor, powered by taglib.
  • Artists & Genres Separators.
  • Prevent Duplicated Tracks, Minimum File Size & Duration.
  • Folders-based Library, with excluded folders.
  • Sort by almost any track or album property.

Look & Feel

  • Material3-like Theme with Dynamic Colors from the current artwork.
  • Home, Tracks, Albums, Artists, Genres, Playlists, Folders & Queues Pages, plus cool ones like Most Played, Moods, Tags, Ratings, Languages, Stats & more.
  • Waveform Seekbar & Widescreen Player Layout.
  • Visualizers, Animated Backgrounds & Custom Wallpapers. new
  • Lots of customizations (check out customization section).

Sound

  • Parametric Equalizer with AutoEQ import. new
  • Bit-perfect Playback, USB DAC Direct Access, Exclusive Mode (desktop) & 32-bit float audio. new
  • Audio Path, see every step from the file to your device. new
  • Output Device Selection & Mono Audio. new
  • Sound Effects like Bass Enhancer, Reverb, Virtual Surround, 8D Audio & Vocal Remover (Android). new
  • Smart Crossfade with Beat Matching new, Gapless Playback, Play/Pause Fade & Skip Silence.
  • Speed & Pitch Control (semitones & 432Hz) & Loudness Enhancer.
  • Per-track Speed, Pitch, Volume & Equalizer, and Sound Presets to switch them all at once. new
  • Replay Gain support (Normalize loudness between tracks)

Streaming & Youtube

  • Best Video & Audio Quality, Audio Only & Data Saver Mode.
  • Sign in with Multiple Profiles, get your Feed, Subscriptions, Playlists & Notifications.
  • Multi Library (Local/YT/Subsonic/Jellyfin/WebDAV/SMB) & Offline Caching for Servers. new
  • Video View with gestures for volume, brightness, seeking, fullscreen, speed up & more.
  • SponsorBlock, Return Youtube Dislike, Segments & Heatmap.
  • Subtitles & Captions.
  • Downloads, Caching & Offline Playback, with a Cache Priority System.
  • Split Downloads by Chapters & Remove Sponsor Segments. new
  • Downloads Tags config & Filename builder (similar to yt-dlp).
  • Auto title/artist/album extraction from video titles, for downloads & scrobbling.
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

System Integration

  • Home Screen Widget & Quick Settings Tiles.
  • Android Auto & Wear OS. new
  • Status Bar Lyrics. new
  • Desktop: System Tray, Keyboard Shortcuts, System Wide Hotkeys & Floating Lyrics Window.
  • Now Playing Broadcasts & Webhook for Tasker, scripts & scrobblers. new

Others:

  • Lyrics fetching & displaying (Synced, Plain & Word Synced lrc/ttml), and an Editor to sync them yourself. new
  • Smart Playlists with flexible rules, usable in search too.
  • Listening Party, listen to the same queue with friends in sync, online or on the same network. new
  • Sync app data between your devices over local network (history, playlists, favourites, queues, lyrics, etc). new
  • Bookmarks & Chapters for tracks and videos. new
  • Stats Charts & Your Year Page.
  • Search by title, artist, album, filename, lyrics & more, even with typos.
  • Persistent Queues, your sessions are saved for later.
  • Flexible History (editable, importable) with minimum seconds/percentage to count a listen.
  • Most Played, your top tracks in any time range.
  • Custom Playlists Order & Artworks, Auto Import from M3U files & Music Servers.
  • Global Tracks Selection, select from multiple places into the same list.
  • Swipe Actions for tracks & videos, Artwork Gestures (tap & long press).
  • Folder images (cover.jpg etc) & .info.txt for small info.
  • Sleep Timer (Tracks or Minutes) & Pausing Scenarios (calls, notifications, volume 0, etc).

Some additional cool features:

  • Smort Tracks Generation: uuh.. with dis advanced algorithm brought for you, generate tracks u often listened to alongside the current one. also by release date, time range, ratings, moods, or randomly.
  • Lost Memories: meet tracks you listened to around this time, but n years ago.
  • Animating Thumbnail & Particles, moving with the audio peak.
  • Miniplayer Party Mode, edge breathing effect with static or artwork colors.
  • Track Play Mode, when playing from search: 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. artists, u won't miss the featured artists in the title, they'll have their own entry inside artists tab.
  • CAN IMPORT YOUTUBE HISTORY & DATA

  • LASTFM, SPOTIFY & LISTENBRAINZ TOO AND MAYBE MORE IN FUTURE

  • decent amount of options/customizations in settings & dialogs, 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.
3. track youtube id (in track comment tag/filename, see "#How youtube?" section below).
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 (example: https://youtu.be/video_id).
    • 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

Platform
Stable
Beta
Android
Windows
Linux new Soon

Linux Installation

  1. Install Dependencies

Important

Install dependencies: mpv for playback (you may skip this if you used a package manager)

sudo pacman -S mpv            # Arch/Manjaro
sudo apt install mpv libmpv2  # Debian/Ubuntu/Mint
sudo dnf install mpv mpv-libs # Fedora/RHEL

Note

(Optional) Install webkit2gtk for youtube login & poToken

sudo pacman -S webkit2gtk-4.1          # Arch/Manjaro
sudo apt install libwebkit2gtk-4.1-0   # Debian/Ubuntu/Mint
sudo dnf install webkit2gtk4.1         # Fedora/RHEL
  1. Install Namida
# Quick Install
curl -fsSL https://raw.githubusercontent.com/namidaco/namida/main/scripts/install_linux_tar.sh | sudo bash

# Package managers
yay -Sy namida-bin                  # AUR (Arch Linux)
paru -Sy namida-bin                 # AUR (Arch Linux)
sudo apt install ./namida.deb   # Debian/Ubuntu (download .deb from beta releases)
sudo dnf install ./namida.rpm   # Fedora/RHEL (download .rpm from beta releases)

# Nix (Home Manager) Installation
# Available at: https://codeberg.org/iWisp360/namida-nix

Companion Apps:

Tip

Community-built tools for an enhanced namida experience

  • πŸ”„ Namida Sync, a tool for syncing namida backups & files across android, windows and linux
  • πŸ“Š Namida Charts, a companion app that shows yearly, monthly & more listening stats with charts based on namida history
  • 🎁 Namida Wrapped, a local web ui for generating spotify wrapped-style stats

Permission Note:

The permissions namida uses and why:

  • WAKE_LOCK & FOREGROUND_SERVICE & FOREGROUND_SERVICE_MEDIA_PLAYBACK: keep app alive for media playback.
  • INTERNET: for many stuff like artist/album images, streaming & downloading, etc.
  • READ_EXTERNAL_STORAGE (Android ≀ 12): list files from indexer folders only.
  • READ_MEDIA_AUDIO (Android 13+): list audio files from indexer folders only.
  • READ_MEDIA_VIDEO (Android 13+): list video files from indexer folders only (for video playback).
  • READ_MEDIA_IMAGES (Android 13+): list image files from indexer folders only (for fallback covers).
  • WRITE_EXTERNAL_STORAGE (Android ≀ 10): same as below but less restrict.
  • MANAGE_EXTERNAL_STORAGE or all_files_access (Android 10+ / requested when needed): used for
    • editing audio tags
    • creating or auto-restoring backups
    • saving artworks
    • deleting files
    • compressing images & fix ytdlp images
    • exporting playlists as m3u
    • downloading youtube content
    • playing tracks from a root folder
    • in-app file browser
  • VIBRATE: vibrate/haptic feedback while doing some actions (can be turned off in settings).
  • POST_NOTIFICATIONS (requested when needed): post notifications like history import/download progress.
  • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS (requested when needed): improve downloads.
  • WRITE_SETTINGS (requested when needed): to set audio as ringtone/etc.
  • QUERY_ALL_PACKAGES: to allow opening custom equalizer apps.

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.

Translate

Contribute

  • Building is not currently directly possible, see why on #37 (comment)

Donate

  • Donation will help improve namida and will show appreciation.

Buy Me A Coffee Ko-fi

Bitcoin/ETH/USDT (BEP20): 0x95b2834c84def92860df773d8b3d80d4c296d748

  • Don't forget to 🌟 star the repo if you like the project ^^

Social

Warning

Namida is only available through namida.app, GitHub & Telegram. We are not responsible for downloads from other sources.

LICENSE

Project is licensed under EULA License.

Β© Copyright (C) 2023-present Namidaco <namida.coo@gmail.com>
- You may read/compile/modify the code for your personal usage, or for the purpose of contribution for the software.
- Redistributing the program as a whole under different name or license without permission is not allowed.

namidaco%2Fnamida | Trendshift

Namida GitHub star history

Made by human, not vibe coded. AI usage is minimal and very selective. Every design choice comes after thoughtful decisions and series of refining, down to every pixel. Parts that are built by ai will have a disclaimer. See here for more info.

Releases

Sponsor this project

Packages

Used by

Contributors

Languages