diff --git a/pkgs/development/python-modules/htmllistparse/default.nix b/pkgs/development/python-modules/htmllistparse/default.nix
new file mode 100644
index 000000000000..ae13f6585a1d
--- /dev/null
+++ b/pkgs/development/python-modules/htmllistparse/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, beautifulsoup4
+, html5lib
+, requests
+, fusepy
+}:
+
+buildPythonPackage rec {
+ pname = "htmllistparse";
+ version = "0.6.1";
+ pyproject = true;
+
+ src = fetchPypi {
+ inherit pname version;
+ hash = "sha256-bcimvwPIQ7nTJYQ6JqI1GnlbVzzZKiybgnFiEBnGQII=";
+ };
+
+ nativeBuildInputs = [ setuptools ];
+ propagatedBuildInputs = [ beautifulsoup4 html5lib requests fusepy ];
+
+ # upstream has no tests
+ doCheck = false;
+
+ pythonImportsCheck = [
+ "htmllistparse"
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/gumblex/htmllisting-parser";
+ description = "Python parser for Apache/nginx-style HTML directory listing";
+ license = licenses.mit;
+ maintainers = with maintainers; [ hexchen ];
+ };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ad4748773e0a..43f3091dfd10 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -5092,6 +5092,8 @@ self: super: with self; {
htmllaundry = callPackage ../development/python-modules/htmllaundry { };
+ htmllistparse = callPackage ../development/python-modules/htmllistparse { };
+
htmlmin = callPackage ../development/python-modules/htmlmin { };
html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };