mirror of
https://github.com/jellyfin/jellyfin-sdk-typescript.git
synced 2024-11-23 05:59:44 +00:00
TypeScript SDK for Jellyfin
.github | ||
.vscode | ||
docs | ||
scripts | ||
src | ||
.eslintignore | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
.npmignore | ||
codecov.yml | ||
jest.config.js | ||
LICENSE | ||
openapi.json | ||
openapitools.json | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json |
jellyfin-sdk-typescript
A TypeScript SDK for Jellyfin.
Warning: This project is under active development and is not ready for production use. API changes will occur.
Install
npm i --save @thornbill/jellyfin-sdk
or
yarn add @thornbill/jellyfin-sdk
Usage
// Create a new instance of the SDK
const jellyfin = new Jellyfin({
clientInfo: {
name: 'My Client Application',
version: '1.0.0'
},
deviceInfo: {
name: 'Device Name',
id: 'unique-device-id'
}
});
const api = jellyfin.createApi('https://demo.jellyfin.org/stable');
// Each API endpoint is exposed via a getter on the SDK instance using
// a shared Configuration and Axios instance. For example the /System APIs
// are available as api.systemApi.
// Fetch the public system info
const info = await api.systemApi.getPublicSystemInfo();
console.log('Info =>', info.data);
// Fetch the list of public users
const users = await api.userApi.getPublicUsers();
console.log('Users =>', users.data);
// A helper method for authentication has been added to the SDK because
// the default method exposed in the generated Axios client is rather
// cumbersome to use.
const auth = await api.authenticateUserByName({ Username: 'demo', Pw: '' });
console.log('Auth =>', auth.data);
// Authentication state is stored internally in the Api class, so now
// requests that require authentication can be made normally
const libraries = await api.libraryApi.getMediaFolders();
console.log('Libraries =>', libraries.data);