Skip to main content

Asynchronous library to fetch albums and assests from immich.

Project description

Test codecov Library version Supported versions Formated with Black

aioimmich

Asynchronous library to fetch albums and assests from immich. The main purpose of this library is the integration of an immich instance into Home Assistant.

:warning: this is in early development state :warning:

breaking changes may occure at every time.

Requirements

  • Python >= 3.11
  • aiohttp

Installation

pip install aioimmich

Examples

Get all albums

import asyncio
import aiohttp
from aioimmich import Immich


async def main():
    async with aiohttp.ClientSession() as session:
        immich = Immich(session, "<API-KEY>", "<IMMICH-IP>")

        for album in await immich.albums.async_get_all_albums():
            print(f"Album: {album.name} contains {album.asset_count} assets")


if __name__ == "__main__":
    asyncio.run(main())

Download an asset

import asyncio
import aiohttp
from aioimmich import Immich


async def main():
    async with aiohttp.ClientSession() as session:
        immich = Immich(session, "<API-KEY>", "<IMMICH-IP>")

        asset_bytes = await immich.assets.async_view_asset("<ASSET-ID>", size="fullsize")
        with open(f"my_nice_picture.jpg", "wb") as fh:
            fh.write(asset_bytes)


if __name__ == "__main__":
    asyncio.run(main())

Get server info

import asyncio
import aiohttp
from aioimmich import Immich


async def main():
    async with aiohttp.ClientSession() as session:
        immich = Immich(session, "<API-KEY>", "<IMMICH-IP>")

        about_info = await api.server.async_get_about_info()
        print(f"Version:       {about_info.version}")
        print(f"Is licensed:   {about_info.licensed}")

        storage_info = await api.server.async_get_storage_info()
        print(f"Disk Available:       {storage_info.disk_available}")
        print(f"Disk Available (raw): {storage_info.disk_available_raw} bytes")
        print(f"Disk Size:            {storage_info.disk_size}")
        print(f"Disk Size (raw):      {storage_info.disk_size_raw} bytes")
        print(f"Disk Usage:           {storage_info.disk_usage_percentage}%")
        print(f"Disk Use:             {storage_info.disk_use}")
        print(f"Disk Use (raw):       {storage_info.disk_use_raw} bytes")


if __name__ == "__main__":
    asyncio.run(main())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aioimmich-0.10.1-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file aioimmich-0.10.1-py3-none-any.whl.

File metadata

  • Download URL: aioimmich-0.10.1-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for aioimmich-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7600f96238fc387113984a7ff806ef61ff3b9f952a5c2d1309ef4a4e9c092519
MD5 f93765b3885fdb55e2fe193a1d04e3b3
BLAKE2b-256 f2541f11271a777ae3db88525cd5c2eada379c625e45eab5c6e112f2fba33668

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page