xdl-node
Version:
A library for retrieving audio streams and other data from X Spaces, built on Node.js and TypeScript.
87 lines (86 loc) • 4.68 kB
TypeScript
import TwspaceDL from './twspace_dl';
export declare class XDL {
private static _instance;
private api;
private _activeRecorder;
/**
* Приватный конструктор – вызывается только через init()
*/
private constructor();
/**
* Инициализирует библиотеку и возвращает её инстанс.
* Вызывайте один раз при старте приложения.
* @param cookiesPath Путь к файлу cookies.
*/
static init(cookiesPath: string): XDL;
/**
* Геттер для получения инстанса XDL.
* Выбросит ошибку, если XDL не был инициализирован.
*/
static get instance(): XDL;
/**
* Скачивает Twitter Space (после окончания эфира или с реплеем).
* После завершения скачивания встраивает обложку и чистит временные файлы.
* @param spaceUrl URL твиттер-спейса (формат: https://x.com/i/spaces/<space_id>)
* @param formatStr Шаблон имени файла (опционально)
*/
downloadSpace(spaceUrl: string, formatStr?: string): Promise<void>;
/**
* Запускает live‑запись Twitter Space.
* Возвращает объект, через который можно остановить запись.
* @param spaceUrl URL твиттер-спейса (формат: https://x.com/i/spaces/<space_id>)
* @param formatStr Шаблон имени файла (опционально)
* @returns Инстанс TwspaceDL для управления записью.
*/
startLiveRecording(spaceUrl: string, formatStr?: string): Promise<TwspaceDL>;
/**
* Останавливает активную live-запись Twitter Space.
* Если запись не была запущена, метод ничего не делает.
*/
stopLiveRecording(): void;
/**
* **Новый метод:** Получает m3u8 поток для Twitter Space без сохранения его на диск.
* @param spaceUrl URL твиттер-спейса (формат: https://x.com/i/spaces/<space_id>)
* @param formatStr Шаблон имени файла (опционально)
* @returns Строка с содержимым m3u8 плейлиста.
*/
getM3u8Stream(spaceUrl: string, formatStr?: string): Promise<string>;
/**
* **Обновленный метод:** Получает полный m3u8 плейлист без сохранения на диск
* и возвращает объект с виртуальным путем и содержимым для дальнейшего использования.
* @param spaceUrl URL твиттер-спейса (формат: https://x.com/i/spaces/<space_id>)
* @param formatStr Шаблон имени файла (опционально)
* @returns Объект с виртуальным путем и содержимым плейлиста.
*/
getFullPlaylist(spaceUrl: string, formatStr?: string): Promise<{
filePath: string;
content: string;
}>;
/**
* **Новый метод:** Получает m3u8 плейлист в реальном времени.
* Периодически дополняет плейлист новыми сегментами, сохраняет объединённый файл и возвращает объект с путём и содержимым.
* @param spaceUrl URL твиттер-спейса (формат: https://x.com/i/spaces/<space_id>)
* @param formatStr Шаблон имени файла (опционально)
*/
getFullPlaylistRealtime(spaceUrl: string, formatStr?: string): Promise<{
filePath: string;
content: string;
}>;
/**
* Получает детальную информацию о Twitter Space.
* @param spaceId ID твиттер-спейса (или полный URL)
* @returns Объект с информацией о space (статус, название, создатель и др.)
*/
getSpaceDetails(spaceId: string): Promise<{
id: string;
url: string;
title: string;
state: string;
creator_name: string;
creator_screen_name: string;
creator_profile_image_url: string;
start_date: string;
available_for_replay: string;
}>;
}
export default XDL;