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/orpyvips
and/orffmpeg
(requires py2.7 or py3.5+) - videos/audio:
ffmpeg
andffprobe
somewhere in$PATH
- HEIF pictures:
pyvips
orffmpeg
orpyheif-pillow-opener
(requires Linux or a C compiler) - AVIF pictures:
pyvips
orffmpeg
orpillow-avif-plugin
or pillow v11.3+ - JPEG XL pictures:
pyvips
orffmpeg
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 ramPRTY_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