Skip to content

Repository files navigation

Veena (वीणा)

🪷🪩🎵🦢

An addon-based music discovery, downloader and streaming aggregator.

Last commit Repo size

Kotlin Jetpack Compose

✨ Features

  • 🧩 Addon Architecture — Modular system for discovery, streaming and downloading.
  • 🔍 Multi-API Support — Search across multiple sources simultaneously using custom addons.
  • 💡 Search Suggestions — Powered by iTunes for quick and accurate music discovery (Note: This is an inbuilt API not an addon).
  • 📥 Music Downloader — High-quality music downloads with metadata tagging.
  • 📻 Powerful Streamer — Seamless streaming experience with ExoPlayer/Media3 integration.
  • 🎨 Material 3 & Haze — Modern, beautiful UI with glassmorphic blur effects and dynamic colors.
  • No Built-in Providers — Privacy-focused approach where users control their sources.
  • 🗂 Local Library — Manage your downloaded music with a built-in library manager.
  • ❤️ Favourites — Collect or favourite songs in library.

📱 Screenshots


🛠 Built With

Component Library
UI Framework Jetpack Compose
Design System Material 3 Expressive You + Retro + Glass
Language Kotlin
Networking OkHTTP 3
JSON Parser Kotlin X Serialization
Navigation Compose Navigation
Media Media3 (ExoPlayer & Transformer)
Dependency Injection Hilt / Dagger2
Database Room 3
Preferences Store DataStore
Image Loading Coil 3.5
Addon Runtime DexClassLoader (.veena)
Scripting Engine QuickJS-KT (from Dokar3)
Background & Downloads WorkManager
Metadata & ID3 Tagging Kyant's TagLib

📂 Project Structure

Veena/
├── app/                                    # Main Android application
│   └── src/main/java/com/indus/veena/
│       ├── database/                       # Persistence (Room, DataStore)
│       ├── di/                             # Dependency Injection (Hilt)
│       ├── extension/                      # Addon loading & management
│       ├── helpers/                        # Component helpers
│       ├── lifecycle/                      # Lifecycle-aware observers
│       ├── models/                         # Core data models & DTOs
│       ├── navigation/                     # Compose navigation graphs
│       ├── repository/                     # Data layer abstraction
│       ├── service/                        # Media3 playback services
│       ├── ui/                             # Screens & Theme
│       └── util/                           # General utility classes
│
├── extension-contract/                     # SDK for addon development
│   └── src/main/java/com/indus/veena/contract/   # Core interfaces & contracts
│
└── veena-gradle-plugin/                    # Addon build tooling
    └── src/main/java/com/indus/veena/gradle/     # Packaging & build tasks

🛡️ Privacy

Veena does not collect any user data, telemetry, or tracking information. Since the app is an aggregator that relies on user-provided addons, any data exchange happens directly between your device and the service provider defined in the addon. No intermediate servers are used.


🔮 Upcoming Features

  • 🌐 Translations — Bringing Veena to more languages.
  • 🔥 Trending Discovery — A dedicated screen for discovering trending music via addons.
  • 📦 Official Addons — Official repository for curated music discovery addons.
  • 🎨 Enhanced Theming — More customization options for the UI.

🤝 Community & Support

Join our community for support, updates, and addon sharing!


💖 Support the Project

  • Star this repo to show your appreciation and help others discover Veena.
  • 🐛 Report bugs in Issues with steps to reproduce.
  • 🛠 Contribute by building addons or submitting pull requests.

🧩 Addon Development

Interested in building your own addon for Veena? Documentation is currently under development.

Addon Documentation (Coming Soon)


⚖️ Legal Disclaimer

Veena is a content aggregator and a specialized browser for music services.

  • No Hosting: Veena does not host, store, or distribute any copyrighted media or audio files.
  • User Responsibility: All content is accessed via third-party addons provided by the community. Users are responsible for ensuring their use of such addons complies with local laws and the terms of service of the content providers.
  • Educational Purpose: This project is for personal use and educational purposes.

📄 License

Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

Any redistribution or modification must remain open-source under the same license. Commercial redistribution without attribution or license compliance is strictly prohibited.


Built with ❤️‍🔥 by Indus Aryan

About

Multi API Music Downloader and Streamer

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages