Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/9001/copyparty/llms.txt

Use this file to discover all available pages before exploring further.

copyparty provides flexible download capabilities including direct file downloads, folder archives, thumbnails, and streaming.

Download Files

Direct Download

Download a file directly:
curl -H "PW: your-password" \
  http://server:3923/path/to/file.txt

Force Download (Don’t Display in Browser)

Add ?dl to force download instead of browser display:
curl http://server:3923/path/to/file.txt?dl
dl
boolean
Force download with Content-Disposition: attachment header

Partial Downloads (Range Requests)

copyparty supports HTTP range requests for resumable downloads:
curl -H "Range: bytes=0-1023" \
  http://server:3923/large-file.bin

Archive Downloads

Download entire folders as compressed archives.

TAR Archives

Download folder as tar file:
curl "http://server:3923/folder/?tar" -o folder.tar
tar
string
default:"gnu"
Archive format. Options:
  • (empty) - Plain GNU tar
  • pax - PAX format (futureproof)
  • gz or gz:N - Gzip compressed (level 0-9, default 3)
  • xz or xz:N - XZ/LZMA compressed (level 0-9, default 1)
  • bz2 or bz2:N - Bzip2 compressed (level 1-9, default 2)

Examples

# Plain tar (fast, streamable)
curl "http://server:3923/music/?tar" -o music.tar

# Gzip compressed tar (level 3)
curl "http://server:3923/music/?tar=gz" -o music.tgz

# Gzip compressed tar (level 9 = best compression)
curl "http://server:3923/music/?tar=gz:9" -o music.tgz

# XZ compressed tar (level 9)
curl "http://server:3923/music/?tar=xz:9" -o music.txz

# PAX format tar
curl "http://server:3923/music/?tar=pax" -o music.tar

ZIP Archives

Download folder as zip file:
curl "http://server:3923/folder/?zip" -o folder.zip
zip
string
default:"utf8"
ZIP format variant:
  • (empty) - Modern UTF-8 filenames
  • dos - CP437 encoding (Windows XP compatibility)
  • crc - CP437 with early CRC32 (MS-DOS PKZIP v2.04g compatibility)

Selective Archives

Download only selected files/folders as archive:
curl -X POST \
  -H "Content-Type: application/json" \
  -d '["file1.txt", "subfolder/file2.txt"]' \
  "http://server:3923/folder/?tar" -o selected.tar

Archive Modifiers

Transcode Audio

Convert audio files on-the-fly while archiving:
# Convert to Opus
curl "http://server:3923/music/?tar&opus" -o music.tar

# Convert to MP3  
curl "http://server:3923/music/?tar&mp3" -o music.tar
opus
boolean
Transcode all audio (except aac/m4a/mp3/ogg/opus/wma) to 128kbps Opus
mp3
boolean
Transcode all audio (except aac/m4a/mp3/ogg/opus/wma) to MP3

Generate Thumbnails

Replace media files with thumbnails:
# JPEG thumbnails
curl "http://server:3923/photos/?tar&j" -o thumbnails.tar

# WebM video thumbnails
curl "http://server:3923/videos/?tar&w" -o thumbnails.tar

# Audio waveforms (PNG)
curl "http://server:3923/music/?tar&p" -o waveforms.tar
j
boolean
Include JPEG thumbnails instead of original images/videos
w
boolean
Include WebM thumbnails for videos
p
boolean
Include PNG waveforms for audio files

Exclude Dotfiles

curl "http://server:3923/folder/?tar&nodot" -o folder.tar
nodot
boolean
Exclude dotfiles and dotfolders from archive

File Listings

Get folder contents as structured data.

JSON Listing

curl "http://server:3923/folder/?ls" | jq
dirs
array
List of subdirectories with metadata
files
array
List of files with size, modification time, and permissions

Plaintext Listing

curl "http://server:3923/folder/?ls=t"
ls
string
Listing format:
  • (empty) - JSON format
  • t - Plaintext (one per line)
  • v - Terminal-formatted (with colors)

Include Dotfiles in Listings

curl "http://server:3923/folder/?ls&dots"
dots
boolean
Include dotfiles in listing (requires dot permission)
curl "http://server:3923/folder/?ls&lt"
lt
boolean
Use symlink timestamps instead of target file timestamps

Directory Tree

Get nested directory structure:
# One level of subdirectories
curl "http://server:3923/folder/?tree=."

# Full tree up to current location
curl "http://server:3923/folder/subfolder/?tree"
tree
string
Tree depth:
  • . - One level of subdirectories
  • (empty) - Full tree from root to current path

Thumbnails

Get image/video thumbnails:
# Auto-sized thumbnail
curl "http://server:3923/photo.jpg?th" -o thumb.jpg

# Specific width
curl "http://server:3923/photo.jpg?th=w256" -o thumb.jpg

# Specific height  
curl "http://server:3923/photo.jpg?th=h256" -o thumb.jpg
th
string
Thumbnail size:
  • (empty) - Auto size
  • w{N} - Width in pixels (e.g., w256)
  • h{N} - Height in pixels (e.g., h256)

Audio Transcoding

Transcode audio files:
# Transcode to Opus
curl "http://server:3923/song.flac?th=opus" -o song.opus

# Transcode to iOS-compatible CAF
curl "http://server:3923/song.flac?th=caf" -o song.caf
th
string
Audio transcoding:
  • opus - 128kbps Opus in WebM container
  • caf - Opus in iOS CAF container
  • mp3 - MP3 format

Text File Streaming

Stream growing log files:
# Stream from beginning
curl "http://server:3923/app.log?tail"

# Stream from byte 1024
curl "http://server:3923/app.log?tail=1024"

# Stream last 128 bytes
curl "http://server:3923/app.log?tail=-128"
tail
integer
Stream file continuously:
  • (empty) - Start from beginning
  • Positive number - Start from byte offset
  • Negative number - Start N bytes from end

View Text Files

Get text files with specific encoding:
# Default UTF-8
curl "http://server:3923/file.txt?txt"

# Specific encoding
curl "http://server:3923/file.txt?txt=iso-8859-1"
txt
string
default:"utf-8"
Text encoding (e.g., iso-8859-1, cp1252, shift-jis)

ZIP File Access

Access files inside ZIP archives without extracting:
# List ZIP contents
curl "http://server:3923/archive.zip?zls"

# Extract specific file from ZIP
curl "http://server:3923/archive.zip?zget=folder/file.txt"
zls
boolean
List contents of ZIP file
zget
string
Extract and download specific file from ZIP

Markdown Rendering

Render markdown files as HTML:
curl "http://server:3923/README.md?v"
v
boolean
Render markdown as HTML, or open media files in player

Media Player

Open media in browser player:
# Open in audio/video player
curl "http://server:3923/song.mp3?v"

# Open in image gallery
curl "http://server:3923/photo.jpg?v"

MIME Type Override

Force specific MIME type:
curl "http://server:3923/file.bin?mime=application/json"
mime
string
Override MIME type in response headers

Recent Uploads

List recent uploads:
# Your uploads
curl "http://server:3923/?ups"

# All uploads (requires admin permission)
curl "http://server:3923/?ru"

# Filter by path
curl "http://server:3923/?ru&filter=photos"

# JSON format
curl "http://server:3923/?ru&j"
ups
boolean
Show recent uploads from your IP
ru
boolean
Show all recent uploads (requires admin permission)
filter
string
Filter uploads by path substring

Shares

List your shared files/folders:
curl "http://server:3923/?shares"
shares
boolean
List temporary share links you’ve created

Active Downloads

View active downloads (admin only):
curl "http://server:3923/?dls"
dls
boolean
Show currently active downloads (requires admin permission)

Response Headers

Common response headers:
Content-Type: application/octet-stream
Content-Length: 1048576
Content-Disposition: inline; filename="file.txt"
Last-Modified: Mon, 03 Mar 2024 12:00:00 GMT
ETag: "abc123"
Accept-Ranges: bytes

Performance Notes

  • Use ?tar instead of ?zip for files > 4 GiB
  • Plain ?tar is fastest for large archives (no compression)
  • ?tar=gz:3 is good balance of speed and compression
  • Range requests support resumable downloads
  • Streaming tar works with curl | tar -xv for extraction on-the-fly
  • ?zip=crc requires reading each file twice (slower)
  • Dotfiles excluded from archives unless you have dot permission
  • up2k.db and dir.txt always excluded from archives
  • Audio transcoding requires FFmpeg on server

Build docs developers (and LLMs) love