1
1
mirror of https://github.com/neosubhamoy/neodlp.git synced 2026-05-06 23:05:50 +05:30

2 Commits

3 changed files with 194 additions and 28 deletions

74
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,74 @@
# Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [support@neodlp.neosubhamoy.com](mailto:support@neodlp.neosubhamoy.com). All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

98
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,98 @@
# Contributing Guidelines
When contributing to this project/repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners/maintainers of this repository before making a change.
Please note we have a [code of conduct](https://github.com/neosubhamoy/neodlp?tab=coc-ov-file), please follow it in all your interactions with the project.
## Creating an Issue
### When to create an issue
- Noticed any bug or inconstencies? report it!
- Want a feature? request it!
- Want to contribute to this project? communicate with the maintainers.
- Want to give us some suggetions? or you have any other question regarding this project.
### Steps to create an issue
1. Go to [issues](https://github.com/neosubhamoy/neodlp/issues) tab
2. Click on the 'New Issue' button
3. Choose a issue template: [Report a Bug](https://github.com/neosubhamoy/neodlp/issues/new?template=bug_report.md) / [Request a Feature](https://github.com/neosubhamoy/neodlp/issues/new?template=feature_request.md) / [Other Issue](https://github.com/neosubhamoy/neodlp/issues/new?template=BLANK_ISSUE)
4. Fill-up all the issue template fields in detail
5. Click on the 'Create' button to submit the issue
6. Wait for the maintainers to review your issue! If everything goes well, You will most likely hear back from us within 24-48hrs. (You can view the status of your issue anytime at the [isuues](https://github.com/neosubhamoy/neodlp/issues) tab)
> [!NOTE]
> DO NOT SKIP ANY REQUIRED FIELD INTENTINALY WHILE CREATING AN ISSUE, INCOMPLETE ISSUES WILL BE CLOSED WITHOUT FURTHER NOTICE. Always make sure to include as much detail as possible to clearly explain the matter! Attach screenshots/links whenever needed.
## Sending a Pull Request
### PR Guidelines
- Each pull request must be tied to resolve a sole pourpose/goal, it should not change anything extra out of it's primary scope.
- The pull request body should briefly describe the notable changes made through the PR and why it is done in that way!
- The PR body should include screenshots/links if applicable.
- The PR title must be related to the primary goal (it should be short, precise and easy to understand)
- If the PR is resolving any issue, it must reference the issues at the end of the PR title using the `#` notation.
### Steps to send a pull request
1. First find an isuue you would like to resolve. View the [open issues](https://github.com/neosubhamoy/neodlp/issues) tab. (comment on the issue to attract the attention of the maintainers and ask them that you would like to work on it) Once you get the approval you can start working...!!
2. Make sure to install [Rust](https://www.rust-lang.org/tools/install), [Node.js](https://nodejs.org/en), [Git](https://git-scm.com/downloads) and [Tauri Prerequisites](https://v2.tauri.app/start/prerequisites/) for your platform (OS) before proceeding.
3. Fork this repo in your GitHub account (click on the 'fork' button on the top right corner of the repo)
4. Clone the forked repo in your local machine: `git clone https://github.com/<your_username>/neodlp.git`
5. Go inside the cloned project directory: `cd neodlp`
6. Create a new git feature branch (name it based on the changes you are about to make): `git checkout -b <new-branch-name>`
7. Install Node.js dependencies: `npm install`
8. Download required external binaries (for your platform): `npm run download`
9. Run build / dev process (run the command based on your platform and architecture, run the build command once before running the dev command for the first time to avoid compile time errors)
```shell
# build commands for windows users
npm run tauri:build:windows-x64 # for x64 devices
npm run tauri:build:windows-arm64 # for ARM64 devices
# development commands for windows users
npm run tauri:dev:windows-x64 # for x64 devices
npm run tauri:dev:windows-arm64 # for ARM64 devices
# build commands for linux users
npm run tauri:build:linux-x64 # for x64 devices
npm run tauri:build:linux-arm64 # for ARM64 devices
# development commands for linux users
npm run tauri:dev:linux-x64 # for x64 devices
npm run tauri:dev:linux-arm64 # for ARM64 devices
# build commands for macOS users
npm run tauri:build:macos-arm64 # for apple silicon macs
npm run tauri:build:macos-x64 # for intel x86 macs
# development commands for macOS users
npm run tauri:dev:macos-arm64 # for apple silicon macs
npm run tauri:dev:macos-x64 # for intel x86 macs
```
10. Do the required code changes (following the style guidelines)
11. Add and commit the changes: `git add .` then `git commit -m "prefix: your message here"`
12. Push the commits: `git push origin <new-branch-name>`
13. Visit GitHub and send the pull request. (following the PR guidelines)
14. Wait for the maintainers to review your PR! You will most likely hear back from us within 24-48hrs. (You can view the status of your PR anytime at the [pull requests](https://github.com/neosubhamoy/neodlp/pulls) tab)
15. You might be asked to do more changes if required. (try to resolve the requested changes ASAP, and always follow-up the maintainers). If everything goes well, your pull request will be merged by the maintainers.
## Style Guidelines
- Write maintainable and easy to understand code and follow existing code conventions
- Use meaningful variable and function names
- Explain complex code using comments
- Use [conventional commit messages](https://www.conventionalcommits.org/en/v1.0.0/)
- Follow [semantic versioning](https://semver.org/) conventions
## AI Guidelines
In this era of Artificial Intelligence, Using AI for your coding help is fine! But, contributions made purely using vibe-coding / AI automations without proper human intervention is not acceptable! If we identify such cases your Issue/PR will be closed/rejected without further notice and repeating such action more than one time will result in a permanent ban from this repo.
## License
By contributing to this project/repository, You agree that your code will be published under the [MIT License](https://github.com/neosubhamoy/neodlp/blob/main/LICENSE).
Thanks for your contribution, We appreciate your efforts :)

View File

@@ -17,7 +17,7 @@ Cross-platform Video/Audio Downloader Desktop App based on YT-DLP with Modern UI
[![aur version](https://img.shields.io/aur/version/neodlp?color=lime-green&style=flat-square)](https://aur.archlinux.org/packages/neodlp)
## Highlighted Features
## Highlighted Features
- Download Video/Audio from thousands of popular sites (YT, FB, IG, X and other 2.5k+ [supported sites](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md))
- Fully Configured YT-DLP Environment Out-of-the-Box (with JS Runtime, PO Token Server, Real-Time Logs etc.)
@@ -31,7 +31,7 @@ Cross-platform Video/Audio Downloader Desktop App based on YT-DLP with Modern UI
- Network controls (proxy, rate limit etc.)
- Highly customizable and many more...😉
## 🧩 Browser Integration
## Browser Integration
You can integrate NeoDLP with your favourite browser (any Chromium/Firefox based browser) Just, install [NeoDLP Extension](https://github.com/neosubhamoy/neodlp-extension) to get started!
@@ -41,7 +41,7 @@ After installing the extension you can do the following directly from the browse
- Right Click Context Menu Action (Search with Neo Downloader Plus - Link, Selection, Media Source)
## 👀 Sneak Peek
## User Interface Overview
![NeoDLP-Mockup](./.github/images/mockup.svg)
@@ -49,13 +49,13 @@ After installing the extension you can do the following directly from the browse
| :---- | :---- | :---- | :---- |
| ![Downloader](./.github/images/downloader.png) | ![Completed-Downloads](./.github/images/completed-downloads.png) | ![Ongoing-Downloads](./.github/images/ongoing-downloads.png) | ![Settings](./.github/images/settings.png) |
## 💻 Supported Platforms
## Supported Platforms
- Windows (10 / 11)
- Linux (Mostly all modern distros)
- MacOS (>=11)
- 🪟 Windows (10 / 11)
- 🐧 Linux (Mostly all modern distros)
- 🍎 MacOS (>=11)
## 🤝 External Dependencies
## External Dependencies
- [YT-DLP](https://github.com/yt-dlp/yt-dlp) [Unlicense] - The core CLI tool used to download video/audio from the web (Hero of the show 😎)
- [FFmpeg & FFprobe](https://www.ffmpeg.org) [LGPLv2.1+] - Used for video/audio post-processing
@@ -63,13 +63,13 @@ After installing the extension you can do the following directly from the browse
- [Deno](https://deno.com) [MIT] - Provides sandboxed javascript runtime environment for yt-dlp (Required for YT downloads, as per the new yt-dlp [announcement](https://github.com/yt-dlp/yt-dlp/issues/14404))
- [BgUtils POT Provider (Rust)](https://github.com/jim60105/bgutil-ytdlp-pot-provider-rs) [GPLv3+] - Provides PO (Proof-of-Origin) Token for YT downloads
## System Pre-Requirements
## Platform Pre-Requirements
- **Windows:** [Microsoft Visual C++ Redistributable 2015+](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170) `winget install Microsoft.VCRedist.2015+.x64` (Will be auto-installed if you install NeoDLP via winget)
- **MacOS:** XCode Command Line Tools `xcode-select --install` (Mostly, comes pre-installed on modern macos, still if you encounter any issue then try installing it manually)
- **Linux:** Most linux packages comes with pre-defined system dependencies which will be auto installed by your package manager (if you are on `fedora` make sure to [enable rpmfusion free+nonfree repos](https://docs.fedoraproject.org/en-US/quick-docs/rpmfusion-setup/#_enabling_the_rpm_fusion_repositories_using_command_line_utilities) before installing the rpm package. also, if you prefer to install dependencies manually [follow this](https://v2.tauri.app/start/prerequisites/#linux))
## ⬇️ Download and Installation
## Download and Installation
1. Download the latest NeoDLP release based on your OS and CPU Architecture, then install it! -OR- Install it directly from an available distribution channel (listed below)
@@ -90,7 +90,7 @@ After installing the extension you can do the following directly from the browse
| Linux x86_64 / ARM64 (Native) | Curl-Bash Installer | `curl -sSL https://neodlp.neosubhamoy.com/linux_installer.sh \| bash` |
| Arch Linux x86_64 / ARM64 (Native) | AUR | `yay -S neodlp` or `paru -S neodlp` |
## 🧪 Package Testing Status
## Package Testing Status
Though NeoDLP is supported on most platforms but not all packages are tested on all platforms, to save some time (and brain cells) and ship the software as fast as possible! Current test coverage is given below. So, untested packages may have issues, test it yourself and always feel free to report any issue on github.
@@ -115,7 +115,7 @@ Though NeoDLP is supported on most platforms but not all packages are tested on
</details>
## 🪜 Roadmap
## Roadmap
- [x] Add support for yt-dlp
- [x] Add basic settings and customization
@@ -129,7 +129,7 @@ Though NeoDLP is supported on most platforms but not all packages are tested on
- [ ] Implement plugin system
- [ ] Add more cool stuffs 😉
## Technologies Used
## Technologies Used
[![Tauri](https://img.shields.io/badge/tauri-%2324C8DB.svg?style=for-the-badge&logo=tauri&logoColor=%23FFFFFF)](https://tauri.app)
[![Rust](https://img.shields.io/badge/rust-%23000000.svg?style=for-the-badge&logo=rust&logoColor=white)](https://rust-lang.org)
@@ -137,7 +137,7 @@ Though NeoDLP is supported on most platforms but not all packages are tested on
[![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org)
[![ShadCnUi](https://img.shields.io/badge/shadcn%2Fui-000000?style=for-the-badge&logo=shadcnui&logoColor=white)](https://ui.shadcn.com)
## 🛠️ Building from Source
## Building from Source
Want to build/compile NeoDLP from the source code? Follow these simple steps to create a production build:
@@ -149,7 +149,7 @@ Want to build/compile NeoDLP from the source code? Follow these simple steps to
4. Download required external binaries (for your platform): `npm run download`
5. Run build process (run the command based on your platform and architecture)
```shell
# command for windows users
# commands for windows users
npm run tauri:build:windows-x64 # for x64 devices
npm run tauri:build:windows-arm64 # for ARM64 devices
@@ -161,17 +161,11 @@ npm run tauri:build:linux-arm64 # for ARM64 devices
npm run tauri:build:macos-arm64 # for apple silicon macs
npm run tauri:build:macos-x64 # for intel x86 macs
```
6. Give it the time to compile (~5-10min) (if you get an error, something like this at the end: `Error A public key has been found, but no private key. Make sure to set 'TAURI_SIGNING_PRIVATE_KEY' environment variable.` simply ignore it! Your build is successfull!). You can find the compiled packages under: `src-tauri/target/release/bundle` directory.
6. Give it the time to compile (~10-15min). After completion, You can find the compiled packages under: `src-tauri/target/release/bundle` directory.
## 🐞 Bug Report and Discussions
Also, want to contribute to this project? Read the [contributing guidelines](https://github.com/neosubhamoy/neodlp?tab=contributing-ov-file).
Noticed any Bug? or Want to give us some suggetions? Always feel free to let us know! We would love to hear from you...!! You can reach us out via the following methods:
- GitHub Issues (Recommended): [Report a Bug](https://github.com/neosubhamoy/neodlp/issues/new?template=bug_report.md) -OR- [Request a Feature](https://github.com/neosubhamoy/neodlp/issues/new?template=feature_request.md)
- Mailing List: If you prefer the good old mailing list way, You can just simply write us on [support@neodlp.neosubhamoy.com](mailto:support@neodlp.neosubhamoy.com) (Kindly follow the Bug Report/Feature Request Template on that case)
- Reddit Community: If you have any other general pourpose query/discussion related to NeoDLP, post it on our subreddit community [r/NeoDLP](https://www.reddit.com/r/NeoDLP)
## 📦 Sources
## Sources
- [Official Website](https://neodlp.neosubhamoy.com)
- Official Repositories
@@ -186,14 +180,14 @@ Noticed any Bug? or Want to give us some suggetions? Always feel free to let us
- [NeoDLP Extension](https://github.com/neosubhamoy/neodlp-extension)
- [NeoDLP Website](https://github.com/neosubhamoy/neodlp-website)
## 💫 Credits
## Credits
- NeoDLP is made possible by the joint efforts of [yt-dlp](https://github.com/yt-dlp/yt-dlp) and [FFmpeg](https://www.ffmpeg.org). Lots of NeoDLP features are actually powered by these tools under the hood! So huge thanks to all the developers/contributers for making these great tools! 🙏
- NeoDLP's 'Format Selection' options are inspired from the [Seal](https://github.com/JunkFood02/Seal) app by [@JunkFood02](https://github.com/JunkFood02)
- Aria2 Linux x86_64 static binaries are built by [@asdo92](https://github.com/asdo92/aria2-static-builds)
- Aria2 Linux x86_64 static binaries are built by [@asdo92](https://github.com/asdo92/aria2-static-builds) and Windows arm64 static binaries are built by [@minnyres](https://github.com/minnyres/aria2-windows-arm64)
- NeoDLP's 'POT Server' is based on [@jim60105's Rust Implementation](https://github.com/jim60105/bgutil-ytdlp-pot-provider-rs) of [Brainicism/bgutil-ytdlp-pot-provider](https://github.com/Brainicism/bgutil-ytdlp-pot-provider)
## ⚖️ License and Usage
## License and Usage
NeoDLP is a Fully Open-Source Software Licensed under the [MIT license](https://github.com/neosubhamoy/neodlp/blob/main/LICENSE). Anyone can view, modify, use (personal and commercial) or distribute it's sources without any extra permission (Just include the LICENSE file :)
@@ -201,4 +195,4 @@ NeoDLP is a Fully Open-Source Software Licensed under the [MIT license](https://
> NeoDLP facilitates downloading from various Online Platforms with different Policies and Terms of Use which Users must follow. We strictly do not promote any unauthorized downloading of copyrighted content. NeoDLP is only made for downloading content that the user holds the copyright to or has the authority for. Users must use the downloaded content wisely and solely at their own legal responsibility. The developer is not responsible for any action taken by the user, and takes zero direct or indirect liability for that matter.
****
An Open Sourced Project - Developed with ❤️ by **Subhamoy**
A FOSS Initiative - Proudly Made with ❤️ in **INDIA**