{"id":19527903,"url":"https://github.com/dmouayad/dune","last_synced_at":"2025-04-26T11:32:27.204Z","repository":{"id":188433962,"uuid":"643927749","full_name":"DMouayad/DUNE","owner":"DMouayad","description":"DUNE offers seamless music streaming from YouTube, YouTube Music, Spotify and local library.","archived":true,"fork":false,"pushed_at":"2023-10-17T15:29:35.000Z","size":3593,"stargazers_count":5,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T02:30:30.751Z","etag":null,"topics":["cross-platform","flutter","flutter-windows","listening-stats","music","music-player","music-streaming","offline-music","offline-music-player","spotify","windows-app","youtube"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DMouayad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-05-22T12:53:57.000Z","updated_at":"2024-11-12T20:47:52.000Z","dependencies_parsed_at":"2023-09-28T11:14:35.114Z","dependency_job_id":null,"html_url":"https://github.com/DMouayad/DUNE","commit_stats":null,"previous_names":["dmouayad/dune"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMouayad%2FDUNE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMouayad%2FDUNE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMouayad%2FDUNE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DMouayad%2FDUNE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DMouayad","download_url":"https://codeload.github.com/DMouayad/DUNE/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250980090,"owners_count":21517583,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-platform","flutter","flutter-windows","listening-stats","music","music-player","music-streaming","offline-music","offline-music-player","spotify","windows-app","youtube"],"created_at":"2024-11-11T01:16:50.246Z","updated_at":"2025-04-26T11:32:26.209Z","avatar_url":"https://github.com/DMouayad.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003clink rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Bruno%20Ace\"\u003e\n\n\u003ch1 align=\"center\" style=\"font-family: Bruno Ace;font-size:44px\"\u003eDUNE\u003c/h1\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://github.com/DMouayad/DUNE/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/DMouayad/DUNE?style=flat-square\u0026color=blue\" alt=\"Release\"/\u003e\u003c/a\u003e\n\u003ca title=\"Made with Fluent Design\" href=\"https://github.com/bdlukaa/fluent_ui\"\u003e\u003cimg src=\"https://img.shields.io/badge/fluent-design-blue?style=flat-square\u0026color=gray\u0026labelColor=0078D7\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\nDune makes it easy to have your favourite songs in one place just choose your playlist ➡ 🎧 ➡ enjoy seamless music streaming.\n\u003c/div\u003e\n\u003cbr/\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eTable of contents\u003c/b\u003e\u003c/summary\u003e\n\n\u003c!-- TOC --\u003e\n\n* [Features](#features)\n    * [Explore Music](#explore-music)\n    * [Local music library](#local-music-library)\n    * [Tabs support](#tabs-support)\n    * [Listening Statistics](#listening-statistics)\n    * [Other Features](#other-features)\n* [Screenshots](#screenshots)\n* [Download](#download)\n* [Roadmap](#roadmap)\n* [How it works](#how-it-works)\n    * [Storage](#storage)\n* [Build from source](#build-from-source)\n* [Feed back \u0026 Contributions](#feed-back--contributions)\n* [Disclaimer](#disclaimer)\n* [Motivation](#motivation)\n* [Acknowledgement](#acknowledgement)\n    * [Packages \u0026 Plugins](#packages--plugins)\n    * [Inspiration](#inspiration)\n* [License](#license)\n\u003c!-- TOC --\u003e\n\u003c/details\u003e\n\n## Features\n\n### Explore Music\n\n- Get up-to-date popular \u0026 trending music from all over the world.\n- Explore music by genre \u0026 mood.\n\n### Local music library\n\n- Add your local audio files with one click and all of your tracks, albums, artists will be saved and available inside\n  the app.\n\n### Tabs support\n\n**Yes, you've read it correctly**, with the option of both vertical \u0026 horizontal tabs-layout:\n\nNow your web-browsing experience is less cluttered because DUNE is the prefect place for your\nmusic-exploring adventures.\n\n### Listening Statistics\n\n\u003e Not 100% functional; going under some refinements.\n\n### Other Features\n\n- **Mixed playlists**: creating a playlist with songs from different sources.\n- **Data Usage control**: You can set the quality of audio streaming \u0026 cover images.\n- **No-Tabs mode**: Tabs can be disabled but, you still have all the other great features.\n- **Themes**: Provides a wide verity of accent colors for you to choose from.\n- **Cross-platform support**\n- **Lyrics support**\n- **Download media \u0026 offline mode**\n- **Local library Mode**\n\n## Screenshots\n\n![](/readme_assets/explore.png)\n\n![](/readme_assets/library-albums.png)\n\n![](/readme_assets/search.png)\n\n## Download\n\n\u003ca href=\"https://github.com/DMouayad/DUNE/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/DMouayad/DUNE?style=flat-square\u0026color=blue\" alt=\"Release\"\u003e\u003c/a\u003e\n\n\u003e Older versions are also available at: [GitHub releases](https://github.com/DMouayad/DUNE/releases)\n\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eOS\u003c/th\u003e\n        \u003cth\u003eLatest version\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\n           \u003cimg width=\"64\" height=\"64\" src=\"https://img.icons8.com/color/96/windows-10.png\" alt=\"windows-10\"/\u003e\n        \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"\"\u003e\n            \u003cimg width=\"30\" height=\"30\" align=\"center\" src=\"https://img.icons8.com/ios-glyphs/30/github.png\" alt=\"github\"/\u003e\n                         \u003ch5 style=\"color:grey;\"\u003e Get it on GitHub\u003c/h5\u003e\u003c/a\u003e\n            \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003cimg width=\"64\" height=\"64\" src=\"https://img.icons8.com/fluency/96/android-os.png\" alt=\"android-os\"/\u003e\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\n          \u003ca href=\"\"\u003e\n            \u003cimg width=\"30\" height=\"30\" align=\"center\" src=\"https://img.icons8.com/ios-glyphs/30/github.png\" alt=\"github\"/\u003e\n                         \u003ch5 style=\"color:grey;\"\u003e Get it on GitHub\u003c/h5\u003e\u003c/a\u003e\n        \u003c/td\u003e\n\n\u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd  align=\"center\"\u003e\n            \u003cimg width=\"64\" height=\"54\" src=\"https://img.icons8.com/color/96/linux--v1.png\" alt=\"linux--v1\"/\u003e\n        \u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\n                \u003ca href=\"\"\u003e\n            \u003cimg width=\"30\" height=\"30\" align=\"center\" src=\"https://img.icons8.com/ios-glyphs/30/github.png\" alt=\"github\"/\u003e\n                         \u003ch5 style=\"color:grey;\"\u003e Get it on GitHub\u003c/h5\u003e\u003c/a\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Roadmap\n\n\u003e This project is a WIP\n\nPlease refer to [DUNE project](https://github.com/users/DMouayad/projects/2) for:\nplanned features, discussions and development progress.\n\n## How it works\n\n### Storage\n\n- [Isar](https://github.com/isar/isar)\n\n  |  Feature  | Offline store |    Backup \u0026 Restore     | Cloud store | Storing User Playlists | Storing User Preferences | Storing User Listening History |\n    |:---------:|:-------------:|:-----------------------:|:-----------:|:----------------------:|:------------------------:|:------------------------------:|\n  | Supported |       ✔       |           🚧            |      ❌      |           🚧           |            ✔             |               ✔                |\n\n## Build from source\n\nTo build your own version of DUNE, please follow these [instructions](CONTRIBUTING.md#running-locally-guide).\n\n## Feed back \u0026 Contributions\n\n- 🐛 Found an issue or encountered a bug? please check the existing [issues](https://github.com/DMouayad/DUNE/issues) or\n  create a new one.\n- 💪🏻 Want to improve this project? check out the [Contributing](CONTRIBUTING.md) guide.\n- ⭐ You can also help us by starring this repo.\n- Read also [\"motivation for this project\"](#motivation).\n\n## Disclaimer\n\n- Initially, this app was developed to demonstrate the power of **Flutter** in creating cross-platform apps.\n\n  \u003e But, if you like using DUNE, well, thank you. Enjoy the music responsibly and support the artists who create it.\n\n- Read also Copy Rights © [disclaimer](DISCLAIMER.md).\n\n## Motivation\n\nAlthough there are many projects that offer similar features, they often fall short\nin providing a complete package 📦.\nFor example, some apps can stream music from different platforms, but they do not 🚫 allow users to:\n\n- Create a playlist with songs from different sources.\n- Provide the option to add your local music library.\n- Change the search engine(source) without adjusting some setting.\n\nAnother important issue in some of these projects is the quality of code. While it may not be an immediate\nconcern for users, it becomes a time-consuming and challenging task for maintainers to add new features\nin the long run. This can be for several reasons:\n\n- The lack of a clear architecture on how code is organized and communicate across different layers.\n- Having mega classes and functions scattered all over the place discarding the SOLID principals.\n- The absence of tests, no Unit tests no Widget tests, nothing.\n\nThat is *why* I started this project with the goal of creating something beautiful \u0026 elegant from the inside-out.\n\n## Acknowledgement\n\n### Packages \u0026 Plugins\n\n- [taggy:](https://github.com/DMouayad/) provides reading \u0026 writing audio files metadata.\n- [Isar:](https://github.com/isar/isar) NoSQL database for Flutter.\n- [youtube_explode_dart:](https://pub.dev/packages/youtube_explode_dart) provides an interface for using YouTube APIs.\n- [file_picker:](https://pub.dev/packages/file_picker) cross-platform solution for selecting files\\folders from local\n  storage.\n- [fluent_ui:](https://github.com/bdlukaa/fluent_ui/)\n- [audio_video_progress_bar](https://github.com/suragch/audio_video_progress_bar)\n\n### Inspiration\n\n- [Spotube](https://github.com/KRTirtho/spotube/)\n- [Harmonoid](https://github.com/harmonoid/harmonoid/)\n- [Drip](https://github.com/Spsden/Drip)\n- [Musify](https://github.com/gokadzev/Musify)\n\n## License\n\nDUNE is an open source project and licensed under the [GNU](/LICENSE) License.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmouayad%2Fdune","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmouayad%2Fdune","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmouayad%2Fdune/lists"}