ei
Minimal media server with optional transcoding. Hassle-free streaming of media files to all devices on your LAN.
Run
Grab a standalone ei executable for your operating system from the releases page.
Or install from PyPI if you have Python installed and prefer that:
pip install ei-media
# or
pipx install ei-media
# or
uv tool install ei-media
You also need ffmpeg available on your system.
Then start the server with:
ei . --transcode --no-pin
Configuration
All configuration is via CLI flags (ei --help):
ei [DIR] [options]
Filesystem Options:
DIR Media directory to serve.
Default: current directory.
--recursive Also descend into subdirectories.
Default: top level only.
--cache-dir DIR Where probe metadata, segments, and
thumbnails are cached.
Default: ~/.cache/ei-media on Linux,
~/Library/Caches/ei-media on macOS,
%LOCALAPPDATA%/ei-media on Windows.
--cache-size SIZE max cache size for video segments
Accepts suffixes KB/MB/GB, 0 = unlimited.
Default: 5GB.
Network and Auth Options:
--host HOST Interface to listen on.
Default: 0.0.0.0 (LAN-wide).
--port PORT Port to listen on.
Default: 8509.
--pin PIN Require a 4-digit PIN. Default
behavior generates a random PIN
if not provided.
--no-pin Disable the PIN (open access).
Video Options:
--transcode Enable the transcode stack
Default: off (direct stream-copy only).
--nvenc Encode with NVIDIA NVENC instead
of CPU. Make sure your ffmpeg and
graphics stack supports it.
Contributing
Issues and PRs welcome.
This project uses uv:
# create .venv with dev tools
uv sync --group dev
# run the program
uv run python -m ei . --no-pin
# run lint and tests
uv run pytest
uv run ruff
# test CI locally: ruff + pytest + wheel + vendor + executables
bash scripts/check.sh --check --exe
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ei_media-0.1.2.tar.gz.
File metadata
- Download URL: ei_media-0.1.2.tar.gz
- Upload date:
- Size: 460.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a47b55633e4417d1c9c85b7e7765f11c36c16748b5c6e2d3d2c6e6d0b9af1d6
|
|
| MD5 |
bb9e8fc1d92c425fc1808c8d641e09b0
|
|
| BLAKE2b-256 |
0e7098aa0535b478e6a43ebcd6194cda311241701601b4f884a889387e9fd759
|
Provenance
The following attestation bundles were made for ei_media-0.1.2.tar.gz:
Publisher:
release.yml on TakeoIschiFan/ei
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ei_media-0.1.2.tar.gz -
Subject digest:
5a47b55633e4417d1c9c85b7e7765f11c36c16748b5c6e2d3d2c6e6d0b9af1d6 - Sigstore transparency entry: 2783705619
- Sigstore integration time:
-
Permalink:
TakeoIschiFan/ei@b3260c3872c81318ed42e6e85608f9b781acb110 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/TakeoIschiFan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b3260c3872c81318ed42e6e85608f9b781acb110 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ei_media-0.1.2-py3-none-any.whl.
File metadata
- Download URL: ei_media-0.1.2-py3-none-any.whl
- Upload date:
- Size: 459.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6e92eef2ebceaee1942059d5c330b808d6b185bd5a22ee6f24297abf4d5d4f3
|
|
| MD5 |
5d7bfc382e35e0908d11bcf271076db1
|
|
| BLAKE2b-256 |
1ddb240bfc071e2649a4e1d2916f456ed32ea336f7fe9c5f211f188776643ad0
|
Provenance
The following attestation bundles were made for ei_media-0.1.2-py3-none-any.whl:
Publisher:
release.yml on TakeoIschiFan/ei
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ei_media-0.1.2-py3-none-any.whl -
Subject digest:
f6e92eef2ebceaee1942059d5c330b808d6b185bd5a22ee6f24297abf4d5d4f3 - Sigstore transparency entry: 2783707200
- Sigstore integration time:
-
Permalink:
TakeoIschiFan/ei@b3260c3872c81318ed42e6e85608f9b781acb110 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/TakeoIschiFan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b3260c3872c81318ed42e6e85608f9b781acb110 -
Trigger Event:
push
-
Statement type: