https://github.com/deepsweet/itc
iTunes ITC files parser and covers extractor
https://github.com/deepsweet/itc
Last synced: 12 months ago
JSON representation
iTunes ITC files parser and covers extractor
- Host: GitHub
- URL: https://github.com/deepsweet/itc
- Owner: deepsweet
- License: mit
- Created: 2015-10-08T05:25:22.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2019-05-10T20:48:06.000Z (about 7 years ago)
- Last Synced: 2025-03-13T23:11:18.288Z (over 1 year ago)
- Language: JavaScript
- Size: 8.79 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://www.npmjs.com/package/itc)
[](https://travis-ci.org/deepsweet/itc)
[](https://david-dm.org/deepsweet/itc)
WIP.
## Install
```
npm i -S itc
```
## Usage
```js
import path from 'path';
import fs from 'fs';
import ITC from 'itc';
const itcFilePath = path.resolve('./test.itc');
const itc = new ITC(itcFilePath);
itc.extractImages().then(images => {
console.log(images);
/*
[
{
info: {
filename: './test.itc',
type: 'png',
itemSize: 65732,
width: 128,
height: 128,
start: 480,
size: 65536
},
raw:
},
{
info: {
type: 'png',
itemSize: 262340,
width: 256,
height: 256,
start: 66212,
size: 262144
},
raw:
},
{
info: {
type: 'png',
itemSize: 640196,
width: 400,
height: 400,
start: 328552,
size: 640000 },
raw:
},
raw:
}
]
*/
images.forEach(image => {
fs.writeFile(
`${image.info.width}-test.${image.info.type}`,
image.raw
);
/*
.
├── test.itc
├── 128-test.png
├── 256-test.png
└── 400-test.png
*/
});
});
```
## API
### `getImageOffset(itemOffset = 0)`
```js
itc.getImageOffset().then(imageOffset => console.log(imageOffset));
//
```
### `getImageType(itemOffset = 0)`
```js
itc.getImageType().then(imageType => console.log(imageType));
// : 'png' || 'argb' || 'jpg'
```
### `getItemSize(itemOffset = 0)`
```js
itc.getItemSize().then(itemSize => console.log(itemSize));
//
```
### `getImageStart(itemOffset = 0)`
```js
itc.getImageStart().then(imageStart => console.log(imageStart));
//
```
### `getImageSize(itemOffset = 0)`
```js
itc.getImageSize().then(imageSize => console.log(imageSize));
//
```
### `getImageWidth(itemOffset = 0)`
```js
itc.getImageWidth().then(imageWidth => console.log(imageWidth));
//
```
### `getImageHeight(itemOffset = 0)`
```js
itc.getImageHeight().then(imageHeight => console.log(imageHeight));
//
```
### `getImageInfo(itemOffset = 0)`
```js
itc.getImageInfo().then(imageInfo => console.log(imageInfo));
/*
{
filename: ,
type: ,
itemSize: ,
width: ,
height: ,
start: ,
size:
}
*/
```
### `getImagesInfo()`
```js
itc.getImagesInfo().then(imagesInfo => console.log(imagesInfo));
/*
[
{
filename: ,
type: ,
itemSize: ,
width: ,
height: ,
start: ,
size:
},
...
]
*/
```
### `extractImage(imageInfo)`
```js
itc.extractImage({ ... }).then(image => console.log(image));
/*
{
info: {
filename: ,
type: ,
itemSize: ,
width: ,
height: ,
start: ,
size:
},
raw:
}
*/
```
### `extractImages()`
```js
itc.extractImages().then(images => console.log(images));
/*
[
{
info: {
filename: ,
type: ,
itemSize: ,
width: ,
height: ,
start: ,
size:
},
raw:
},
...
]
*/
```
## References
* [itcToImageV2.sh](https://github.com/kyro38/MiscStuff/blob/master/Useless/itc/itcToImageV2.sh)
* [ITC Extractor](http://www.sffjunkie.co.uk/python-itc.html)