xdl-node
Version:
A library for retrieving audio streams and other data from X Spaces, built on Node.js and TypeScript.
75 lines (74 loc) • 3.2 kB
TypeScript
import { Twspace } from './twspace';
export declare class TwspaceDL {
space: Twspace;
formatStr: string;
private _tempdir;
private _recordingProcess;
/**
* @param space Экземпляр Twspace.
* @param formatStr Шаблон имени файла.
*/
constructor(space: Twspace, formatStr?: string);
get filename(): string;
/**
* Получает динамический URL (тот, что используется браузером).
* @returns Промис с динамическим URL.
*/
getDynUrl(): Promise<string>;
/**
* Формирует master URL путём замены части динамического URL.
* @returns Промис с master URL.
*/
getMasterUrl(): Promise<string>;
/**
* Получает URL плейлиста с сегментами.
* @returns Промис с URL плейлиста.
*/
getPlaylistUrl(): Promise<string>;
/**
* Получает текст плейлиста с заменёнными URL сегментов.
* @returns Промис с текстом плейлиста.
*/
getPlaylistText(): Promise<string>;
/**
* **Новый метод:** Возвращает m3u8 плейлист как строку без сохранения на диск.
* Это позволяет обработать плейлист напрямую в коде (например, для передачи в другой сервис).
* @returns Строка с содержимым m3u8 плейлиста.
*/
getM3u8Stream(): Promise<string>;
/**
* **Новый метод:** Получает полный m3u8 плейлист, сохраняет его в файл и возвращает путь и содержимое файла.
*/
getFullPlaylist(): Promise<{
filePath: string;
content: string;
}>;
/**
* **Новый метод:** Получает m3u8 плейлист в реальном времени.
* Периодически запрашивает плейлист, объединяет новые сегменты с уже полученными,
* дописывает результирующий плейлист в файл и возвращает путь и содержимое файла.
*/
getFullPlaylistRealtime(): Promise<{
filePath: string;
content: string;
}>;
/**
* **Помечаем метод как нерабочий:**
* Скачивание больше не поддерживается
*/
download(): Promise<void>;
/**
* Очищает временную директорию.
*/
cleanup(): Promise<void>;
/**
* Запускает live‑запись Twitter Space с возможностью остановки.
* Добавлены параметры для уменьшения качества записи
*/
startLiveRecording(): Promise<string>;
/**
* Останавливает live‑запись Twitter Space.
*/
stopLiveRecording(): void;
}
export default TwspaceDL;