namidaco / namida

A Beautiful and Feature-rich Music & Video Player with Youtube Support, Built in Flutter
Other
2.31k stars 139 forks source link
android android-app android-music-player audio-player beatiful-ui flutter flutter-app flutter-apps flutter-music-app flutter-music-player lastfm music music-player music-player-application player playlist video video-player video-player-application youtube

Namida

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

Hits-of-Code

Translation status

Sections:

🎉 Features

Library & Indexing

Look & Feel

Streaming & Youtube

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: ```bash # [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:

Some additional cool features:

Video Integration

###### 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.

Screenshots

### Customization Settings
### YouTube Miniplayer


Usage Preview

Animating Thumbnail Recommends & Listens

Installation

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.

© Logo by @midjourney

thanks @sujxl24 for the monet version

Contribute

Donate

Buy Me A Coffee

ko-fi

Bitcoin: bc1ql802k98ml3aum4v2cm9am4kg2lm5w8w6w2xlhh

ETH/MATIC: 0x13f1a519228C83BBbDE11BAF804515672f9C6c2A

Social

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.

Star History Chart