forked from um/web
76dd78130a
(cherry picked from commit cad5b4d7deba4fbe4a40a17306ce49d3b2f13139)
15 lines
584 B
TypeScript
15 lines
584 B
TypeScript
import { Decrypt as RawDecrypt } from './raw';
|
|
import { GetArrayBuffer } from '@/decrypt/utils';
|
|
import { DecryptResult } from '@/decrypt/entity';
|
|
|
|
const TM_HEADER = [0x00, 0x00, 0x00, 0x20, 0x66, 0x74, 0x79, 0x70];
|
|
|
|
export async function Decrypt(file: File, raw_filename: string): Promise<DecryptResult> {
|
|
const audioData = new Uint8Array(await GetArrayBuffer(file));
|
|
for (let cur = 0; cur < 8; ++cur) {
|
|
audioData[cur] = TM_HEADER[cur];
|
|
}
|
|
const musicData = new Blob([audioData], { type: 'audio/mp4' });
|
|
return await RawDecrypt(musicData, raw_filename, 'm4a', false);
|
|
}
|