// @ts-nocheck // npm import * as fs from 'fs'; import { v4 as uuid } from 'uuid'; // @ownzones import { Rrtq } from '@ownzones/rrtq'; // lib import { IPlaylist, ISegment, PlaylistBuilder } from '../lib/playlist-builder'; import { Worker } from '../lib/workers/worker'; import { config } from '../config'; import { CacheManager } from '../lib/cache'; import { SegmentLoader } from '../lib/segment-loader'; import { getCompositionDefinition } from '../lib/connect-api'; import { redisClient as redis } from '../utils/async-wrappers'; const fileId = 'b048cfa9-73f2-403f-be3f-df146aae4ac0'; // const accessToken = 'eyJraWQiOiJcLzJzN3NYXC80VkhFZ1dVNWZZWU9JTHFpazRLMHAzXC9PNkZnY0dcL0VnYzlaZz0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1NWJkM2QyNS1iZTkyLTQ1ZGQtODRiMy04ZmI1ZWY2ZjE2OGMiLCJhdWQiOiI0ZHJpYmVwMzJsYmc1dmUyanI4czMxazJ1aiIsImN1c3RvbTp6bF91c2VyX2lkIjoiMTgzZGM3ZjYtOTBjMS00Y2JkLWE4ZDQtYzU5NmE0ZDhhNmI4IiwidG9rZW5fdXNlIjoiaWQiLCJhdXRoX3RpbWUiOjE1MzkxNzA1OTYsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xX2pXUkU4TFBKNCIsIm5hbWUiOiJBbGV4IENhemFjdSIsImNvZ25pdG86dXNlcm5hbWUiOiJhbGV4YW5kcnUuY2F6YWN1QG93bnpvbmVzLmNvbSIsInByZWZlcnJlZF91c2VybmFtZSI6ImFsZXhhbmRydS5jYXphY3VAb3duem9uZXMuY29tIiwiZXhwIjoxNTM5MzMyNTQ0LCJpYXQiOjE1MzkzMjg5NDQsImVtYWlsIjoiYWxleGFuZHJ1LmNhemFjdUBvd256b25lcy5jb20ifQ.iG9yVDmyKnchPdhC37YsMEhISbrOvOHdAdIxVhFVEoYStVAfqk5inUBlk1Ox5t4Rv6nXlr6Yb6tQYXMtbfTS5SgRZJ9EyX0pc7dS9hW4v1538SPfIKMkSaqxm4SEWW3a9F4AOskw9kOqW6fQeDze_7u_c-3np0TdZhMz5rcyCX1aEkpjtZfGmhGkNqqOC8LZAUOuOOLIXGV-D1eBm9AMXzptec8597fjvXuHiJZBFGqGRfyr_DVUg6aTfwkkMwAVyYmFIqTMzJaLMWjYNS4qvptw8pBYq65N-ohQp0rihCLYbvvz-AfRa5bEWPAQN9hSXxEejJrQYQMVli1gYS5MIg'; const orgSlug = 'test1'; const virtualTrackId = '8f1785da-9ee9-47ec-a397-ad0a1b40b092'; const limit = undefined; const rrtq: Rrtq = new Rrtq(config); const outputDirectory = '/Users/alexcazacu/Desktop/mediaview'; // const s3Client = new AWS.S3({ region: 'us-east-1' }); // Initialize the Redis client const redisClient = redis.createClient(); redisClient.on('error', (error) => { throw error; }); export async function fetchComposition(): Promise { const definition = await getCompositionDefinition(fileId, orgSlug); fs.writeFileSync( `${outputDirectory}/composition.json`, JSON.stringify(definition, null, 4), ); } export async function fetchSegments(): Promise { await redisClient.flushdbAsync(); CacheManager.getInstance(); const worker = new Worker(config, 'test'); const queue = await rrtq.createQueue( uuid(), { queueTimeout: 3000, taskTimeout: 2000, uniqueTasks: false, namespace: 'test', }, ); const segmentLoader = new SegmentLoader(queue, queue); const definition = (await getCompositionDefinition(fileId, orgSlug)).compositionDefinition; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access const playlist = (PlaylistBuilder as any).buildPlaylist( definition, fileId, 5, null, null, null, virtualTrackId, null, ) as IPlaylist & { segments: ISegment[] }; const segments: ISegment[] = limit ? playlist.segments.slice(0, limit) : playlist.segments; for (let index = 1; index < segments.length; index += 1) { const segment = segments[index]; // eslint-disable-next-line no-await-in-loop const content = await segmentLoader.load(segment as any); fs.writeFileSync(`${outputDirectory}/segment-${index}.ts`, content); } await worker.stop(); } if (require.main === module) { void (async () => { await fetchSegments(); // await fetchComposition(); })(); }