UNPKG

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
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;