Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hanpq/PSImmich
PSImmich is a Powershell API wrapper for Immich
https://github.com/hanpq/PSImmich
Last synced: 8 days ago
JSON representation
PSImmich is a Powershell API wrapper for Immich
- Host: GitHub
- URL: https://github.com/hanpq/PSImmich
- Owner: hanpq
- License: mit
- Created: 2024-03-07T20:30:01.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-10-15T21:50:29.000Z (about 2 months ago)
- Last Synced: 2024-10-18T06:41:33.578Z (about 2 months ago)
- Language: PowerShell
- Homepage: https://getps.dev/modules/PSImmich/getstarted
- Size: 2.83 MB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
- jimsghstars - hanpq/PSImmich - PSImmich is a Powershell API wrapper for Immich (PowerShell)
README
# PSImmich
This project has adopted the following policies [![CodeOfConduct](https://img.shields.io/badge/Code%20Of%20Conduct-gray)](https://github.com/hanpq/PSImmich/blob/main/.github/CODE_OF_CONDUCT.md) [![Contributing](https://img.shields.io/badge/Contributing-gray)](https://github.com/hanpq/PSImmich/blob/main/.github/CONTRIBUTING.md) [![Security](https://img.shields.io/badge/Security-gray)](https://github.com/hanpq/PSImmich/blob/main/.github/SECURITY.md)
## Project status
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/hanpq/PSImmich/build.yml?branch=main&label=build&logo=github)](https://github.com/hanpq/PSImmich/actions/workflows/build.yml) [![Codecov](https://img.shields.io/codecov/c/github/hanpq/PSImmich?logo=codecov&token=qJqWlwMAiD)](https://codecov.io/gh/hanpq/PSImmich) [![Platform](https://img.shields.io/powershellgallery/p/PSImmich?logo=ReasonStudios)](https://img.shields.io/powershellgallery/p/PSImmich) [![PowerShell Gallery](https://img.shields.io/powershellgallery/dt/PSImmich?label=downloads)](https://www.powershellgallery.com/packages/PSImmich) [![License](https://img.shields.io/github/license/hanpq/PSImmich)](https://github.com/hanpq/PSImmich/blob/main/LICENSE) [![docs](https://img.shields.io/badge/docs-getps.dev-blueviolet)](https://getps.dev/modules/PSImmich/getstarted) [![changelog](https://img.shields.io/badge/changelog-getps.dev-blueviolet)](https://github.com/hanpq/PSImmich/blob/main/CHANGELOG.md) ![GitHub release (latest SemVer including pre-releases)](https://img.shields.io/github/v/release/hanpq/PSImmich?label=version&sort=semver) ![GitHub release (latest SemVer including pre-releases)](https://img.shields.io/github/v/release/hanpq/PSImmich?include_prereleases&label=prerelease&sort=semver) ![Static Badge](https://img.shields.io/badge/80%25%20(131%2F172)-green?label=API%20Coverage) ![Static Badge2](https://img.shields.io/badge/1103-green?label=Unit%2FQuality%2FIntegration%20tests)## About
PSImmich is a Powershell API wrapper for Immich
## Installation
### PowerShell Gallery
To install from the PowerShell gallery using PowerShellGet run the following command:
```powershell
Install-Module PSImmich -Scope CurrentUser
```## Usage
Before calling the Immich cmdlets a session needs to be created. Currently it is supported to use an API key or credentials (username and password)
```powershell
Connect-Immich -BaseURL 'https://immich.domain.com' -AccessToken 'ztKkvGWVIacJATX7RLCbWCISpamwEQkLpakn8O48acE'
``````powershell
$Cred = Get-Credential
Connect-Immich -BaseURL 'https://immich.domain.com' -Credential $Cred
```You can verify that the connection is working by calling `Get-IMSession` and verifying that `AccessTokenValid` is `true`
```powershell
Get-IMSessionBaseUri : https://immich.domain.com
AuthMethod : AccessToken
AccessToken : System.Security.SecureString
AccessTokenValid : True
Credential :
JWT :
APIUri : https://immich.domain.com/api
ImmichVersion : 1.98.2
SessionID : 67055f46-51aa-42a2-8471-46170c441558
```The session object can be passed to all cmdlets. This is useful if connection to more than one Immich instance is needed.
```powershell
$Session1 = Connect-Immich -BaseURL 'https://immich.domain.com' -AccessToken 'ztKkvGWVIacJATX7RLCbWCISpamwEQkLpakn8O48acE' -PassThruGet-IMAsset -Session $Session1
```To see available cmdlets you can use the following command
```powershell
Get-Command -Module PSImmich | Format-Wide -Column 4 -Property NameAdd-IMActivity Add-IMAlbumAsset Add-IMAlbumUser Add-IMAsset
Add-IMAssetTag Add-IMMyProfilePicture Add-IMPartner Add-IMSharedLinkAsset
...
...```
## Available commands
Below is a reference of the available command. For documentation about each command please see the [docs](https://getps.dev/modules/PSImmich/getstarted)
### Activity
- Add-IMActivity
- Get-IMActivity
- Get-IMActivityStatistic
- Remove-IMActivity### Album
- Add-IMAlbumUser
- Get-IMAlbum
- Get-IMAlbumCount
- New-IMAlbum
- Remove-IMAlbum
- Remove-IMAlbumUser
- Rename-IMAlbum
- Set-IMAlbum
- Set-IMAlbumUser### API key
- Get-IMAPIKey
- New-IMAPIKey
- Remove-IMAPIKey
- Set-IMAPIKey### Asset
- Export-IMAssetThumbnail
- Get-IMAsset
- Get-IMAssetMemoryLane
- Get-IMAssetStatistic
- Import-IMAsset
- Remove-IMAsset
- Restore-IMAsset
- Save-IMAsset
- Set-IMAsset
- Start-IMAVideoTranscode
- Update-IMAssetMetadata
- Update-IMAssetThumbnail### Audit
- Get-IMAuditDelete
### Auth
- Test-IMAccessToken
### AuthSession
- Get-IMAuthSession
- Remove-IMAuthSession### Face
- Get-IMFace
### FileReport
- Get-IMAuditFile
- Get-IMFileChecksum### Job
- Clear-IMJob
- Get-IMJob
- Resume-IMJob
- Start-IMJob
- Suspend-IMJob### Library
- Get-IMLibrary
- New-IMLibrary
- Remove-IMLibrary
- Remove-IMOfflineLibraryFile
- Set-IMLibrary
- Sync-IMLibrary
- Test-IMLibrary### Map
- Get-IMMapMarker
- Get-IMMapStyle### Memories
- Get-IMMemory
- New-IMMemory
- Remove-IMMemory
- Set-IMMemory### Notification
- Send-IMTestMessage
### Partner
- Add-IMPartner
- Get-IMPartner
- Remove-IMPartner
- Set-IMPartner### Person
- Export-IMPersonThumbnail
- Get-IMPerson
- Merge-IMPerson
- New-IMPerson
- Set-IMPerson### Search
- Find-IMAsset
- Find-IMCity
- Find-IMExploreData
- Find-IMPerson
- Find-IMPlace### ServerConfig
- Get-IMConfig
- Set-IMConfig### ServerInfo
- Get-IMServer
- Get-IMServerConfig
- Get-IMServerFeature
- Get-IMServerStatistic
- Get-IMServerStorage
- Get-IMServerVersion
- Get-IMSupportedMediaType
- Get-IMTheme
- Test-IMPing### Session
- Connect-Immich
- Disconnect-Immich
- Get-IMSession
- Invoke-ImmichMethod### SharedLink
- Add-IMSharedLinkAsset
- Get-IMSharedLink
- New-IMSharedLink
- Remove-IMSharedLink
- Remove-IMSharedLinkAsset
- Set-IMSharedLink### Tag
- Add-IMAssetTag
- Get-IMTag
- New-IMTag
- Remove-IMAssetTag
- Remove-IMTag
- Rename-IMTag### Timeline
- Get-IMTimeBucket
### User
- Add-IMMyProfilePicture
- Export-IMProfilePicture
- Get-IMUser
- New-IMUser
- Remove-IMMyProfilePicture
- Remove-IMUser
- Restore-IMUser
- Set-IMUser