/mitmproxy-image

Download image using mitmproxy

Primary LanguagePythonMIT LicenseMIT

mitmproxy-image

Code style: black

Download image using mitmproxy on hydrus.

Quick Start

  • Set up your browser for mitmproxy (guide) or use extension such as SwitchyOmega

  • Run the application

mitmproxy \
--listen-host 127.0.0.1 \
--listen-port 5007 \
--set mitmimage_config='~/mitmimage.yaml' \
--set view_order=size \
--view-filter '~m GET & ~t "(image|video)/(?!svg.xml|x-icon|vnd.microsoft.icon)" & !~websocket' \
-s "$(mitmproxy-image print-path)"

If configuration is succesful, each time your browser load an image it will also be shown on mitmimage downloader page on hydrus.

Downloaded image is not presented as new files, so change presentation option on mitmimage downloader page.

It is also recommended to install browser extension that will load bigger image, such as imagus ( chrome, firefox ) or maxurl ( firefox, github )

demo

note: the appearance, command line and hydrus version may differ from actual version, but the workflow is as shown on the gif.

Requirements

mitmproxy-image requires Python 3.9 or above.

To install Python , I recommend using pyenv

Installation

With pipx (recommended):

python3 -m pip install --user pipx
pipx install https://github.com/rachmadaniHaryono/mitmproxy-image/archive/refs/heads/master.zip
pipx inject --include-apps mitmproxy-image mitmproxy

With pip:

python3 -m pip install https://github.com/rachmadaniHaryono/mitmproxy-image/archive/refs/heads/master.zip

Creating desktop file

Edit $HOME/.local/share/applications/mitmproxy-image.desktop

[Desktop Entry]
Type=Application
Name=mitmproxy-image
Exec=xterm -e mitmproxy -s "$(mitmproxy-image print-path)" --listen-host 127.0.0.1 --listen-port 5007 --view-filter '~m GET & ~t "(image|video)/(?!svg.xml|x-icon|vnd.microsoft.icon)" & !~websocket' --set mitmimage_config='~/mitmimage.yaml' --set view_order=size

Development environment and release process

see CONTRIBUTING.md

This project use modified version of copier-poetry

License

This project is licensed under the MIT License