百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
O

OpenDirectoryDownloader

> 编程语言
开源

索引打开目录

1.4K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

索引打开目录

Open Directory Downloader

Indexes open directories listings in 130+ supported formats, including FTP(S), Google Drive, AList, Directory Lister, HFS, Bhadoo, GoIndex, Go2Index (alternatives), Mediafire, GoFile, GitHub, pCloud, Dufs.

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: wget -x -i theurlsfile.txt

Downloading with aria2c with --aria2-urls (theurlsfile-aria2.txt): aria2c -i theurlsfile-aria2.txt

Downloading with aria2c with normal theurlsfile.txt (Does not support directory structure): aria2c -i theurlsfile.txt

For aria2 you sometimes needs --disable-ipv6 if downloading fails.

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 10:

https://dotnet.microsoft.com/download/dotnet/10.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 -f --aria2-urls Save aria2 urls files (with directory support) -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:

<Header Name>: <Header Value>

This syntax is compatible with e.g. cURL, so that you can copy the headers from a cURL command and re-use them with OpenDirectoryDownloader.

This means you can easily "fake" a browser request:

  1. On the page/site you want to index, open your browsers dev tools (F12 or CTRL + SHIFT + i)
  2. Go to the Network tab
  3. Reload the page
  4. Right-click on the first request/item in the network tab and select Copy > Copy as cURL (bash) (might be called differently, depending on your browser)
  5. The copied command ends with lots of headers (-H '<something>' -H '<something else>'). Copy only this part of the command and append it to your OpenDirectoryDownloader command, like so: OpenDirectoryDownloader --url "https://myopendirectory.com" -H 'header-name-1: header-value-1' -H 'header-name-2: header-value-2' ...
    You can of course also use other options with this or omit the --url option to use the prompt instead.

Setting some options like --username or --user-agent might override some headers, as explicit options take precedence. Option order does not matter (this applies to OpenDirectoryDownloader in general).

Copying on Linux

When you want to copy (C key or -c flag) the stats at the end on Linux you need to have xclip installed.

Linux distros

On some distros you need extra dependencies. For Alpine: https://docs.microsoft.com/en-us/dotnet/core/install/linux-alpine

For others see: https://docs.microsoft.com/en-us/dotnet/core/install/linux

TLS errors (Windows 10)

If you received errors like this, please apply the registry file "Enable TLS 1.3.reg" from this site.

System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
 ---> System.Security.Authentication.AuthenticationException: Authentication failed because the remote party sent a TLS alert: 'ProtocolVersion'.
 ---> System.ComponentModel.Win32Exception (0x80090326): The message received was unexpected or badly formatted.

Cloudflare

EXPERIMANTAL!! READ THIS FIRST!

IT WILL NOT ALWAYS WORK!

There is experimental support for Cloudflare. When it detects a Cloudflare issue it will download a Chromium browser, start it, in which the Cloudflare protection can be solved. Sometimes this is a captcha which the user (you) needs to solve. For each browser session you have 60 seconds to complete. After that the browser will be killed and you can retry on next request.

Cloudflare does somehow detect that it is not the normal Chromium/Chrome browser and therefore it sadly will not always work. A good tip is move your mouse as soon as possible in the browser.

Sometimes it fails and pops up a browser for every request, and also kills it almost immediately when Cloudflare sees that there is no problem with the session. If this happens, kill the indexer!

If anybody have more info how to get Cloudflare to work better, let me know!

GitHub

By default GitHub has a rate limit of 60 request per hour, which is enough for 20 repositories with less than 100.000 items. You can increase this limit to 5000 per hour by creating a (personal) token:

  1. Go to https://github.com/settings/tokens/new
  2. Add a name like "OpenDirectoryDownloader"
  3. You don't have to select any scopes!
  4. Click "Generate token"
  5. Start OpenDirectoryDownloader with --githubtoken

Docker

Every release will automatically push an image

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

核心特点

  • •C#
  • •directory
  • •http
  • •https
  • •indexer

> 标签

C#directoryhttphttpsindexer

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言