# Open Directory Downloader
Indexes open directories listings in 130+ supported formats, including FTP(S), Google Drive, Bhadoo, GoIndex, Go2Index (alternatives), Dropbox, Mediafire, GoFile, GitHub.
![](assets/Screenshot01.png)
Written in C# with .NET (Core), which means it is **cross platform**!
Downloading is not (yet) implemented, but is already possible when you use the resulting file into another tool (for most of the formats).
Downloading with [wget](https://www.gnu.org/software/wget/):
`wget -x -i theurlsfile.txt`
Downloading with [aria2c](https://aria2.github.io/) (Does not support directory structure..):
`aria2c -i theurlsfile.txt`
If you have improvements, supply me with a pull request! If you have a format not yet supported, please let me know.
## Releases / Binaries
For builds (64-bit) for Windows, Linux and Mac, or ARM/ARM64 builds for Pi:
https://github.com/KoalaBear84/OpenDirectoryDownloader/releases
When using the self-contained releases you don't need to install the .NET (Core) Runtime.
## Prerequisites
When you are NOT using the self-contained releases, you need to install the latest/current Runtime version of .NET 8:
https://dotnet.microsoft.com/download/dotnet/8.0/runtime
## Usage
Command line parameters:
| Short | Long | Description |
| ----- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-u` | `--url` | Url to scan |
| `-t` | `--threads` | Number of threads (default 5) |
| `-o` | `--timeout` | Number of seconds for timeout |
| `-w` | `--wait` | Number of seconds to wait between calls (when single threaded is too fast..) |
| `-q` | `--quit` | Quit after scanning (No "Press a key") |
| `-c` | `--clipboard` | Automatically copy the Reddits stats once the scan is done |
| `-j` | `--json` | Save JSON file |
| `-f` | `--no-urls` | Do not save URLs file |
| `-r` | `--no-reddit` | Do not show Reddit stats markdown |
| `-l` | `--upload-urls` | Uploads urls file |
| `-e` | `--exact-file-sizes` | Exact file sizes (WARNING: Uses HEAD requests which takes more time and is heavier for server) |
| | `--fast-scan` | Only use sizes from HTML, no HEAD requests, even if the approx. size cannot be extracted from the HTML |
| `-s` | `--speedtest` | Does a speed test after indexing |
| `-a` | `--user-agent` | Use custom default User Agent |
| | `--username` | Username |
| | `--password` | Password |
| | `--github-token` | GitHub Token |
| `-H` | `--header` | Supply a custom header to use for each HTTP request. Can be used multiple times for multiple headers. See below for more info. |
| | `--output-file` | Output file to use for urls file |
| | `--proxy-address` | Proxy address, like "socks5://127.0.0.1:9050" (needed for .onion) |
| | `--proxy-username` | Proxy username |
| | `--proxy-password` | Proxy password |
| | `--no-browser` | Disallow starting Chromium browser (for Cloudflare) |
### Example
#### Windows
`OpenDirectoryDownloader.exe --url "https://myopendirectory.com"`
#### Linux
`./OpenDirectoryDownloader --url "https://myopendirectory.com"`
If you want to learn more or contribute, see the following paragraphs!
### Custom Headers
Headers need to be provided in the following format:
```