Skip to content

A lightweight command-line tool that automatically detects and downloads audio files from any webpage using browser automation.

License

Notifications You must be signed in to change notification settings

iWebbIO/DLAssist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DLAssist

Your smart, graphical companion for capturing and downloading media from any website.

License: MIT Python Version

DLAssist is a user-friendly desktop application that simplifies downloading media from the web. It uses powerful browser automation to detect and capture audio, video, and even complex stream files that are often hidden or difficult to access. Just browse to a page, and DLAssist will find the media for you.


✨ Key Features

  • 🕵️ Automatic Media Detection: Launches a real browser instance (Chromium) to monitor network traffic. Any detected media file is automatically added to the download list in real-time.
  • 🎧 Wide Format Support: Captures a variety of formats, including .mp3, .m4a, .wav, .mp4, .mkv, and HLS streams (.m3u8, .ts).
  • 🔐 Login & Cookie Support: Works seamlessly with sites that require a login. Simply provide a cookies.json file, and DLAssist will use your authenticated session.
  • ⚡ Concurrent Downloads: Download multiple files simultaneously with a configurable number of threads to maximize your bandwidth.

🤔 How It Works

DLAssist uses the Playwright automation library to launch a controlled browser instance. When you navigate to a URL, the application listens to all network requests made by the page. It intelligently filters these requests to identify media files based on their URL extension or content type. These URLs are then displayed in the "File Detection" list, ready for you to select and download.

This approach means DLAssist can capture media from dynamic, JavaScript-heavy websites where simple scrapers would fail.

🚀 Getting Started

Follow these steps to get DLAssist up and running on your system.

Prerequisites

  • Python 3.8 or newer
  • pip and venv (usually included with Python)

Installation

  1. Clone the repository:

    git clone https://github.com/iWebbIO/DLAssist.git
    cd DLAssist
  2. Install the required Python packages:

    pip install -r requirements.txt
  3. Install the Playwright browsers: (This is a one-time setup that downloads the browser binaries needed by Playwright).

    playwright install

💻 Usage

  1. Run the application:

    python main.py
  2. Launch the Browser:

    • Enter the URL of the website you want to scan into the top input field.
    • Click the "🚀 Launch Browser" button.
  3. Detect Media:

    • A new browser window will open. Browse the site as you normally would.
    • As media files are detected, they will appear in the "File Detection" tab in real-time.
  4. Select & Download:

    • Click on the files you wish to download from the list. Use "Select All" / "Deselect All" for convenience.
    • Click the "Download Selected Files" button.
  5. Track Progress:

    • Switch to the "Download Progress" tab to monitor your downloads.

Advanced: Using Cookies for Logged-In Sites

To download media from sites that require you to be logged in (e.g., subscription services), you need to provide your browser's cookies to DLAssist.

  1. Export Your Cookies:

    • Install a browser extension that can export cookies in the Netscape or JSON format. A good one is Get cookies.txt LOCALLY for Chrome/Edge.
    • Navigate to the website you want to access, log in, and then use the extension to export the cookies for that domain.
    • Save the file as cookies.json in the project directory (or anywhere you like).
  2. Configure DLAssist:

    • Go to the "Settings" tab in the application.
    • Click "Browse..." next to the "Cookies Path" field and select your cookies.json file.
    • Click "Save Settings".

Now, when you launch the browser, you will be automatically logged in.

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

🙏 Acknowledgments

About

A lightweight command-line tool that automatically detects and downloads audio files from any webpage using browser automation.

Resources

License

Stars

Watchers

Forks

Languages