An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

[![npm](https://img.shields.io/npm/v/itc.svg?style=flat-square)](https://www.npmjs.com/package/itc)
[![travis](http://img.shields.io/travis/deepsweet/itc.svg?style=flat-square)](https://travis-ci.org/deepsweet/itc)
[![deps](http://img.shields.io/david/deepsweet/itc.svg?style=flat-square)](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)