dependencies - GamerDuck123/copyparty GitHub Wiki

mandatory deps:

  • jinja2 (is built into the SFX)

optional dependencies

install these to enable bonus features

enable hashed passwords in config: argon2-cffi

enable ftp-server:

  • for just plaintext FTP, pyftpdlib (is built into the SFX)
  • with TLS encryption, pyftpdlib pyopenssl

enable music tags:

  • either mutagen (fast, pure-python, skips a few tags, makes copyparty GPL? idk)
  • or ffprobe (20x slower, more accurate, possibly dangerous depending on your distro and users)

enable thumbnails of...

  • images: Pillow and/or pyvips and/or ffmpeg (requires py2.7 or py3.5+)
  • videos/audio: ffmpeg and ffprobe somewhere in $PATH
  • HEIF pictures: pyvips or ffmpeg or pyheif-pillow-opener (requires Linux or a C compiler)
  • AVIF pictures: pyvips or ffmpeg or pillow-avif-plugin or pillow v11.3+
  • JPEG XL pictures: pyvips or ffmpeg

enable sending zeromq messages from event-hooks: pyzmq

enable smb support (not recommended): impacket==0.12.0

pyvips gives higher quality thumbnails than Pillow and is 320% faster, using 270% more ram: sudo apt install libvips42 && python3 -m pip install --user -U pyvips

to install FFmpeg on Windows, grab a recent build -- you need ffmpeg.exe and ffprobe.exe from inside the bin folder; copy them into C:\Windows\System32 or any other folder that's in your %PATH%

dependency chickenbits

prevent loading an optional dependency , for example if:

  • you have an incompatible version installed and it causes problems
  • you just don't want copyparty to use it, maybe to save ram

set any of the following environment variables to disable its associated optional feature,

env-var what it does
PRTY_NO_ARGON2 disable argon2-cffi password hashing
PRTY_NO_CFSSL never attempt to generate self-signed certificates using cfssl
PRTY_NO_FFMPEG audio transcoding goes byebye, thumbnailing must be handled by Pillow/libvips
PRTY_NO_FFPROBE audio transcoding goes byebye, thumbnailing must be handled by Pillow/libvips, metadata-scanning must be handled by mutagen
PRTY_NO_MAGIC do not use magic for filetype detection
PRTY_NO_MUTAGEN do not use mutagen for reading metadata from media files; will fallback to ffprobe
PRTY_NO_PIL disable all Pillow-based thumbnail support; will fallback to libvips or ffmpeg
PRTY_NO_PILF disable Pillow ImageFont text rendering, used for folder thumbnails
PRTY_NO_PIL_AVIF disable Pillow avif support (internal and/or plugin)
PRTY_NO_PIL_HEIF disable 3rd-party Pillow plugin for HEIF support
PRTY_NO_PIL_WEBP disable use of native webp support in Pillow
PRTY_NO_PSUTIL do not use psutil for reaping stuck hooks and plugins on Windows
PRTY_NO_VIPS disable all libvips-based thumbnail support; will fallback to Pillow or ffmpeg

example: PRTY_NO_PIL=1 python3 copyparty-sfx.py

  • PRTY_NO_PIL saves ram
  • PRTY_NO_VIPS saves ram and startup time
  • python2.7 on windows: PRTY_NO_FFMPEG + PRTY_NO_FFPROBE saves startup time

optional gpl stuff

some bundled tools have copyleft dependencies, see ./bin/#mtag

these are standalone programs and will never be imported / evaluated by copyparty, and must be enabled through -mtp configs