Skip to main content

bithuman

Run a bitHuman avatar on your own machine, in your own process.

pip install bithuman
DEMO=$(python -c 'import bithuman,os; print(os.path.join(os.path.dirname(bithuman.__file__), "assets", "demo_sample.wav"))')
python -m bithuman render sofia-ramirez "$DEMO"     # -> sofia-ramirez.mp4

Two arguments — an avatar and some audio — and a video you can play (with your API secret in BITHUMAN_API_SECRET; see the key). The avatar is a showcase name (python -m bithuman list), your agent's ten-character code (python -m bithuman list --mine; fetched once, which is free), or a file you already have. The audio above is 15 s of speech that ships with this package, so the first run needs nothing you do not already have. The commands are spelled as in the separate bithuman CLI: render <avatar> <audio> [-o out.mp4] [--limit N] [--json] and list [--mine]. If you signed in with that CLI (bithuman login, which this package does not install), the secret it saved is read here too.

In your own program it is the same two things. The command above fetched the avatar to ~/.cache/bithuman/showcase/:

import bithuman, os

speech = os.path.join(os.path.dirname(bithuman.__file__),
                      "assets", "demo_sample.wav")   # 15 s, ships in the wheel
avatar_file = os.path.expanduser("~/.cache/bithuman/showcase/sofia-ramirez.imx")

avatar = bithuman.open(avatar_file)
frames = 0
for image in avatar.render(speech):   # each image: (height, width, 3) uint8, RGB
    frames += 1
print(frames, "frames")

That is the whole thing: open an avatar, then render audio through it.

every family, the same two lines

Essence 1, Essence 2 (full body essence-2, or face only essence-2f) and Expression 2 avatars are opened and rendered by the code above, unchanged. Nothing you write says which one you have, and you do not have to know.

Two families need one extra package on the machine:

pip install "bithuman[essence-2]"      # the new Essence 2
pip install "bithuman[expression-2]"   # Expression 2

Open one of those avatars without its extra and the refusal says so, and says that line. Nothing else differs.

from the command line

python -m bithuman render <avatar> speech.wav              # -> <avatar>.mp4
python -m bithuman render <avatar> speech.wav --mode face  # Essence 2: face only
python -m bithuman pull <avatar>                            # fetch it now, render later with no network
python -m bithuman pack redeem                              # install a prepaid offline pack on this machine

An agent code renders in the agent's own model. An avatar made with Essence 2 renders in Essence 2; an agent made earlier keeps the model it has (Essence 2 legacy, Expression 2, Essence 1). --model picks another of the agent's models: essence-2, essence-2f (face), expression-2, or essence-2-legacy.

With an offline pack installed, a machine renders with no network and no API secret until the pack is spent; an avatar fetched before is used as it is.


The surface

you write it means
bithuman.open(source) open the avatar file on this machine; returns an Avatar
avatar.render(audio) yield the frames for that audio
Avatar what open gives you
AvatarError catch this for any refusal
InvalidAvatar we cannot find it, or it is not a usable avatar
NotSupported this avatar cannot run here
NotAuthorised the key is missing, invalid, or out of credit
Failed we could not do it — the message says which

There is nothing to configure: this package runs the avatar on this machine. For a live conversation, where audio arrives as it is spoken, use AsyncBithuman (streaming below).

audio in

audio is 16 kHz mono, and it is either a buffer or a stream — the same call:

avatar.render(speech)                      # an audio file path
avatar.render(samples)                     # int16 or float32 in [-1, 1]
avatar.render(raw_bytes)                   # 16 kHz mono, signed 16-bit
avatar.render(microphone())                # any iterable of the above

frames out

Each frame is a (height, width, 3) uint8 array in RGB order, in order, at the avatar's own frame rate, which is a property of the avatar, not something to choose: 25 per second for Essence 2, 20 per second for Expression 2.

import cv2
for image in avatar.render(speech):
    cv2.imshow("avatar", image[:, :, ::-1])   # OpenCV wants BGR
    cv2.waitKey(1)

stopping early

Someone interrupting the avatar is "stop consuming and close the iterator":

images = avatar.render(speech)
for n, image in enumerate(images):
    if n == 50:                       # e.g. the user started talking
        images.close()
        break

releasing it

with frees everything at the end of the block; without it, the avatar is freed when it is garbage collected.

with bithuman.open(avatar_file) as avatar:
    for image in avatar.render(speech):
        frames += 1

streaming a live conversation

AsyncBithuman takes audio as it arrives and yields frames with their audio, paced at the avatar's play rate:

from bithuman import AsyncBithuman          # inside an async function:

avatar = await AsyncBithuman.create(model_path=avatar_file)   # reads BITHUMAN_API_SECRET
await avatar.push_audio(pcm16_bytes, 16000, last_chunk=False)  # as the audio arrives
await avatar.flush()                                            # end of the reply
async for frame in avatar.run():
    if frame.has_image:
        show(frame.bgr_image)            # BGR numpy array
    if frame.audio_chunk:
        play(frame.audio_chunk.array)    # the audio that goes with this frame
await avatar.shutdown()

The full example is at https://docs.bithuman.ai/platforms/python/app.


The four refusals

Each one leads to a different fix, and none of them asks you to know anything about how we are built.

try:
    avatar = bithuman.open(avatar_file)
    for image in avatar.render(speech):
        pass
except bithuman.InvalidAvatar:
    ...   # fix the path or the code, or fetch the avatar again
except bithuman.NotSupported:
    ...   # use the cloud package, or another device
except bithuman.NotAuthorised:
    ...   # fix the credential
except bithuman.Failed:
    ...   # retry, then report it

Every one of them is an AvatarError, so except bithuman.AvatarError catches all four.


The key

Rendering is metered, and the key belongs in the environment rather than in your code:

export BITHUMAN_API_SECRET=...

Without one, render refuses with NotAuthorised before it hands you a frame. Get a key at https://www.bithuman.ai/developer/api-keys.

python -m bithuman also reads a .env file in the current directory; that is deprecated and will stop, so export the variable instead. What is already in the environment always wins.


Where it runs

Python 3.10 – 3.14
macOS Apple silicon
Linux x86-64 and arm64
Windows Windows 11, x86-64 (64-bit Python)
Intel Macs, Windows on Arm no wheel — pip install refuses rather than quietly giving you an old release

ffmpeg is used to read an audio file when it is on your PATH; when it is not, the decoder this package already installs reads the same file in this process, so it is not something to install first.

Three environment variables:

BITHUMAN_API_SECRET your API secret, from https://www.bithuman.ai/developer/api-keys — rendering is metered, so it is required unless you pass api_secret=. BITHUMAN_API_KEY is read as a deprecated alias
BITHUMAN_CACHE_DIR where a prepared avatar is kept (default ~/.cache/bithuman)
BITHUMAN_AVATAR_CACHE_GB the most space prepared avatars may take (default 10). One copy is kept per avatar file content; the least recently used ones that no process has open are removed above it

This package never puts a command on your PATH

pip install bithuman installs a library and nothing else — and python -m bithuman is why that costs you nothing: a module needs no script, cannot collide with one, and is there the moment pip finishes. The full bithuman command-line tool (a live avatar, a conversation) is a different artifact and is not installed with pip:

curl -fsSL https://install.bithuman.ai | sh
brew tap bithuman/bithuman https://gitlab.com/bithuman/sdk/homebrew-bithuman \
  && brew install bithuman/bithuman/bithuman-cli         # macOS, equivalently (always tap with the URL)

That is on purpose: a pip-installed command named bithuman would overwrite the one the CLI installer or Homebrew put at the same path.


Using it from a LiveKit agent

The LiveKit integration is a separate package, livekit-plugins-bithuman, published by LiveKit out of github.com/livekit/agents:

pip install livekit-plugins-bithuman "bithuman[expression-2]"

Do not give that plugin your account API secret. Up to and including 1.8.4, the plugin copies the secret it is given into the avatar's participant attributes, which every participant in the LiveKit room can read. Keep the secret on your server under another name (BITHUMAN_MASTER_SECRET), mint a one-hour runtime token per session (POST /v1/runtime-tokens/mint) and pass that token to the plugin instead. The worker is at https://docs.bithuman.ai/platforms/livekit.


Licence

Commercial software. Terms of use: https://www.bithuman.ai/legal/terms

Metadata

Release files for bithuman 2.12.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for bithuman 2.12.8
File Actions
bithuman-2.12.8-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for bithuman-2.12.8-cp314-cp314-win_amd64.whl
bithuman-2.12.8-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details for bithuman-2.12.8-cp314-cp314-manylinux_2_28_x86_64.whl
bithuman-2.12.8-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details for bithuman-2.12.8-cp314-cp314-manylinux_2_28_aarch64.whl
bithuman-2.12.8-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details for bithuman-2.12.8-cp314-cp314-macosx_14_0_arm64.whl
bithuman-2.12.8-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for bithuman-2.12.8-cp313-cp313-win_amd64.whl
bithuman-2.12.8-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for bithuman-2.12.8-cp313-cp313-manylinux_2_28_x86_64.whl
bithuman-2.12.8-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details for bithuman-2.12.8-cp313-cp313-manylinux_2_28_aarch64.whl
bithuman-2.12.8-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details for bithuman-2.12.8-cp313-cp313-macosx_14_0_arm64.whl
bithuman-2.12.8-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for bithuman-2.12.8-cp312-cp312-win_amd64.whl
bithuman-2.12.8-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details for bithuman-2.12.8-cp312-cp312-manylinux_2_28_x86_64.whl
bithuman-2.12.8-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details for bithuman-2.12.8-cp312-cp312-manylinux_2_28_aarch64.whl
bithuman-2.12.8-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details for bithuman-2.12.8-cp312-cp312-macosx_14_0_arm64.whl
bithuman-2.12.8-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for bithuman-2.12.8-cp311-cp311-win_amd64.whl
bithuman-2.12.8-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details for bithuman-2.12.8-cp311-cp311-manylinux_2_28_x86_64.whl
bithuman-2.12.8-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details for bithuman-2.12.8-cp311-cp311-manylinux_2_28_aarch64.whl
bithuman-2.12.8-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details for bithuman-2.12.8-cp311-cp311-macosx_14_0_arm64.whl
bithuman-2.12.8-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for bithuman-2.12.8-cp310-cp310-win_amd64.whl
bithuman-2.12.8-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details for bithuman-2.12.8-cp310-cp310-manylinux_2_28_x86_64.whl
bithuman-2.12.8-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details for bithuman-2.12.8-cp310-cp310-manylinux_2_28_aarch64.whl
bithuman-2.12.8-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details for bithuman-2.12.8-cp310-cp310-macosx_14_0_arm64.whl

Total release size: 479.2 MB

Release files / bithuman-2.12.8-cp314-cp314-win_amd64.whl

Download URL bithuman-2.12.8-cp314-cp314-win_amd64.whl
Size 13.9 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
3ae6ea64151fd365bc0aafe5ac5980f1101f9f632a5f68e7e34ed24fc166309a
BLAKE2b-256 checksum
How to use checksums
f7ee104ecaa259b0416849b17e2794ca62cb7ea97a5cefa58574d15fcfb9454f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL bithuman-2.12.8-cp314-cp314-manylinux_2_28_x86_64.whl
Size 23.6 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
443e524eb0c6dacd1ae50e3d555b70ed00b4efc331a91408b54d214629fab39a
BLAKE2b-256 checksum
How to use checksums
ff00fc00a35964cfc0c6cd08b8fff8cab8abce2f5572dcd704fe9120dfa873b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL bithuman-2.12.8-cp314-cp314-manylinux_2_28_aarch64.whl
Size 21.9 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f0e900bd5b81ea39b8afd4c41ee955815bad29bfaf45a06924bea0855d1de50b
BLAKE2b-256 checksum
How to use checksums
00b634c6fe473d36b602e1240347144b6a1d49fab83b7773c4651e5abfbc8198
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp314-cp314-macosx_14_0_arm64.whl

Download URL bithuman-2.12.8-cp314-cp314-macosx_14_0_arm64.whl
Size 36.4 MB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
ed206f2eac8297f12f24e345deb035043b03e738d7cbadb4655e090c08cd7a42
BLAKE2b-256 checksum
How to use checksums
67bbf243719cc89059ded399c3accc57efc1a9bedf02211e15133b7121a81944
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp313-cp313-win_amd64.whl

Download URL bithuman-2.12.8-cp313-cp313-win_amd64.whl
Size 13.9 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
9bc4079a7d4eefee76d7ebebc863357e78e3c79a289c9e0ffac8c1f4ba22ed86
BLAKE2b-256 checksum
How to use checksums
e9ab3e6ce06946e49a773f2ed0b99a17e4683fd3d372d6e656cd37d3694f46f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL bithuman-2.12.8-cp313-cp313-manylinux_2_28_x86_64.whl
Size 23.6 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c3e55f393d3463c2932efafea8ce1df58fc7c1bac1f28199f118687270a8a221
BLAKE2b-256 checksum
How to use checksums
6c910f9974d89832bf64425db7872a3932528d5da96e647196c49842e99a6f1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL bithuman-2.12.8-cp313-cp313-manylinux_2_28_aarch64.whl
Size 21.9 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3060e85ab289bbd40d2b0d14228d05981600487e0cfed9bcd9b9c2a518ceee1e
BLAKE2b-256 checksum
How to use checksums
9add7b88f4ff550ad7642b7f3353369ba02ef335ee4b117a88a89e6810b4dd71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp313-cp313-macosx_14_0_arm64.whl

Download URL bithuman-2.12.8-cp313-cp313-macosx_14_0_arm64.whl
Size 36.4 MB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
e6d66e9972e85b0ea4fd6310cb0ef31e4dcf4fab0637059c2a19cd4b709fcfcf
BLAKE2b-256 checksum
How to use checksums
a22a654dc0ad29d84d09cad9fe3bef49f2d112242043194138e49b5435263996
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp312-cp312-win_amd64.whl

Download URL bithuman-2.12.8-cp312-cp312-win_amd64.whl
Size 13.9 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
b288cb7b299dfdbf6a5047fd9cd46d4b0934dbd7afd0bc8a40f217ffbf172db6
BLAKE2b-256 checksum
How to use checksums
06cd36f0406582edcc47d93e1ee2c935741b88a5fef5564371bee0d723c032e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL bithuman-2.12.8-cp312-cp312-manylinux_2_28_x86_64.whl
Size 23.6 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fb7c0384930351802fceb3401bd1159059b88b98b87d682211781603d1de072e
BLAKE2b-256 checksum
How to use checksums
a3ec5a4ecba041e5a635ff1ee04ed2c7c218dba5a5a7978f3b3e743a1400d2f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL bithuman-2.12.8-cp312-cp312-manylinux_2_28_aarch64.whl
Size 21.9 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6b7455bbb6c48b3ef75fa6e765e8c2c2b71b8618eb739fe855068e9670248186
BLAKE2b-256 checksum
How to use checksums
90dddaa2ab55876c85147003e1cf80fe93ee9ec57e2ac2d68c46bb6816efe6bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp312-cp312-macosx_14_0_arm64.whl

Download URL bithuman-2.12.8-cp312-cp312-macosx_14_0_arm64.whl
Size 36.4 MB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
f8c92698fe7a43a665c7934a43e94b2d8ce1c3640e4d4abfeda1100beaf09163
BLAKE2b-256 checksum
How to use checksums
381908207c8ac57adce2928802f508731602c3b8fd6e9ae1bdf6d18d4a8b8ee3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp311-cp311-win_amd64.whl

Download URL bithuman-2.12.8-cp311-cp311-win_amd64.whl
Size 13.9 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
7d44d39f8e6013348e79dc8d330341a0b15ebb399e8525ee8146723966bb17f6
BLAKE2b-256 checksum
How to use checksums
3e8992b3132403062ee6e60c1bb3f4a802ddf32478a21ce38eadde077b7638d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL bithuman-2.12.8-cp311-cp311-manylinux_2_28_x86_64.whl
Size 23.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f2412988e022d8efcc742a41c8fbaf767d1135e33526c785e872938dc4c77a8a
BLAKE2b-256 checksum
How to use checksums
7518c4e0437daf94391a33d582e5cfec8c774fdc9b8f5dcf02ddf394f9bb99d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL bithuman-2.12.8-cp311-cp311-manylinux_2_28_aarch64.whl
Size 21.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ccc0f317f5a0c27644e970630806e117e2727baf92f8b0d30791bd097596d528
BLAKE2b-256 checksum
How to use checksums
3d247d48bff5dfd5866f2e04632a02dd45db5686c19d059ba83c6c88edf96f3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp311-cp311-macosx_14_0_arm64.whl

Download URL bithuman-2.12.8-cp311-cp311-macosx_14_0_arm64.whl
Size 36.4 MB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
64276f2780aa2e29d210052115e02318a0ea60308bb0d18ba3d49f188bb46543
BLAKE2b-256 checksum
How to use checksums
5ff90ed22b28961b0132f3d09f05c5b57edf8a5f4490164f9ae096b54a043786
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp310-cp310-win_amd64.whl

Download URL bithuman-2.12.8-cp310-cp310-win_amd64.whl
Size 13.9 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
34adc8cf8a947e27ab3c0ba93e95771549961610302e06869ed56a36adf08db7
BLAKE2b-256 checksum
How to use checksums
9bf048a409e30771b8d72f78a0b9bb498516275bc1a5aa04795f72c99a0b7a25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL bithuman-2.12.8-cp310-cp310-manylinux_2_28_x86_64.whl
Size 23.6 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c64e994f01364df506f573e3b6ddffa547eb98a82137b257d12266d42dd46867
BLAKE2b-256 checksum
How to use checksums
d130479ce250c0b14fd1bd472bb7868cdb74ea9653980c0aae1cf2f8d80f0bc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL bithuman-2.12.8-cp310-cp310-manylinux_2_28_aarch64.whl
Size 21.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
133f5b736c6e5e7ca8d025480b95d15c843c65192cbd6eceff63debb5f4505e6
BLAKE2b-256 checksum
How to use checksums
ae0883ddd078b51716673fc69b74a9702ef2012e39149fe93049349f562445d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Release files / bithuman-2.12.8-cp310-cp310-macosx_14_0_arm64.whl

Download URL bithuman-2.12.8-cp310-cp310-macosx_14_0_arm64.whl
Size 36.4 MB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
ab36ae03beb7b98ffaee1207867a81e6bac996be1aaef473f452270ac0e66c1f
BLAKE2b-256 checksum
How to use checksums
24614e9e752372c899854935eff8e592daa455b90c4cd13c5748999049e306ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.3

Security for bithuman 2.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page