رفتن به محتوا

رویدادها

همهٔ مسیرها نسبت به https://app.lobbe.ai/api/v1 هستند و هر درخواست Authorization: Bearer $LOBBE_TOKEN را می‌فرستد. مرجع API همهٔ مسیرها را فهرست می‌کند و فیلدهای x-lobbe-* را توضیح می‌دهد.

آنچه پس از یک نشانگر برای جلسه‌های صاحب حساب رخ داده است: ساخته‌شدن، انتظار برای نام‌گذاری، آماده‌شدن، شکست، تغییر و حذف.

ویژگی مقدار
دسترسی‌ها recordings:read یا recordings:write
دقیقه مصرف می‌کند خیر
سقف درخواست‌ها read: ۶۰۰ درخواست در هر ۱۰ دقیقه برای هر توکن
پاسخ موفق 200
نام محل نوع الزامی توضیح
after query "latest" | string خیر از کجا خوانده شود: مقدار nextCursor صفحهٔ قبل، بی‌تغییر، یا latest که از همین حالا شروع می‌کند (بدون رویداد، با نشانگری برای پرسیدن‌های بعدی). اگر نباشد، از قدیمی‌ترین رویدادی که خواندنِ از نو برمی‌گرداند، حدود دو ساعت پس از آغاز بازهٔ ۳۰ روزه‌ای که رویدادها نگه داشته می‌شوند. نشانگری که از این بازه قدیمی‌تر باشد پاسخ 410 CURSOR_EXPIRED می‌گیرد: نخست با after=latest نشانگر تازه‌ای بگیرید، بعد عقب‌ماندگی را از listReadyRecordings جبران کنید و سپس از همان نشانگر تازه به بعد بخوانید. مقدار نادرست پاسخ 400 می‌گیرد
limit query integer خیر تعداد رویدادهایی که برمی‌گردد، از ۱ تا ۵۰۰ (پیش‌فرض ۱۰۰)

آنچه از after به این سو برای جلسه‌هایی که این توکن به آن‌ها دسترسی دارد رخ داده است، از قدیمی‌ترین. با دسترسی recordings:read، جلسه‌های خود صاحب حساب (نه جلسه‌های سری‌هایی که عضوشان است)؛ اگر توکن فقط recordings:write داشته باشد، جلسه‌هایی که همین توکن فرستاده است.

فیلد نوع همیشه می‌آید توضیح
schemaVersion 1 بله در نسخهٔ ۱ API همیشه 1
events[] object[] بله رویدادهای این صفحه، از قدیمی‌ترین؛ برای یک جلسه، به همان ترتیبی که تغییرهایش رخ داد. هیچ رویدادی محتوای جلسه را همراه ندارد: فقط شناسه‌ها، وضعیت جلسه، کد خطا یا نوع تغییر
events[] (type: "recording.created") object جلسه‌ای دریافت شد
events[].id string بله شناسهٔ خود رویداد که در هر بار خواندن یکسان است: با آن رویدادی را که قبلاً پردازش کرده‌اید کنار بگذارید. این شناسه نشانگر نیست (برای صفحهٔ بعد از nextCursor استفاده کنید)
events[].recordingId string بله شناسهٔ جلسه‌ای که رویداد دربارهٔ آن است
events[].seriesId string | null بله سری‌ای که جلسه هنگام این تغییر در آن بود؛ اگر در هیچ سری‌ای نبود یا سری‌ها خاموش باشند null است
events[].occurredAt string بله زمان رخ دادن تغییر (ISO 8601، به وقت UTC)؛ به‌جای مرتب‌کردن بر اساس آن، ترتیب همین فهرست را دنبال کنید
events[].type "recording.created" بله recording.created: جلسه کامل دریافت شد، چه در برنامه ضبط شده باشد، چه بارگذاری شده باشد و چه با توکن فرستاده شده باشد
events[].data object بله status جلسه پس از این تغییر
events[].data.status "QUEUED" | "TRANSCRIBING" | "NAMING" | "GENERATING" | "READY" | "FAILED" بله جلسه کجاست: QUEUED، TRANSCRIBING، NAMING (در انتظار نام گوینده‌ها)، GENERATING (لُب در حال ساخت است)، سپس READY؛ یا FAILED
events[] (type: "recording.naming_required") object جلسه‌ای منتظر نام‌گذاری است
events[].id string بله شناسهٔ خود رویداد که در هر بار خواندن یکسان است: با آن رویدادی را که قبلاً پردازش کرده‌اید کنار بگذارید. این شناسه نشانگر نیست (برای صفحهٔ بعد از nextCursor استفاده کنید)
events[].recordingId string بله شناسهٔ جلسه‌ای که رویداد دربارهٔ آن است
events[].seriesId string | null بله سری‌ای که جلسه هنگام این تغییر در آن بود؛ اگر در هیچ سری‌ای نبود یا سری‌ها خاموش باشند null است
events[].occurredAt string بله زمان رخ دادن تغییر (ISO 8601، به وقت UTC)؛ به‌جای مرتب‌کردن بر اساس آن، ترتیب همین فهرست را دنبال کنید
events[].type "recording.naming_required" بله recording.naming_required: جلسه در مرحلهٔ NAMING است و منتظر نام گوینده‌ها یا رد شدن (skipRecordingNaming) است؛ هر بار که نام‌گذاری دوباره باز شود دوباره فرستاده می‌شود
events[].data object بله status جلسه پس از این تغییر
events[].data.status "QUEUED" | "TRANSCRIBING" | "NAMING" | "GENERATING" | "READY" | "FAILED" بله جلسه کجاست: QUEUED، TRANSCRIBING، NAMING (در انتظار نام گوینده‌ها)، GENERATING (لُب در حال ساخت است)، سپس READY؛ یا FAILED
events[] (type: "recording.ready") object لُب جلسه‌ای آماده شد
events[].id string بله شناسهٔ خود رویداد که در هر بار خواندن یکسان است: با آن رویدادی را که قبلاً پردازش کرده‌اید کنار بگذارید. این شناسه نشانگر نیست (برای صفحهٔ بعد از nextCursor استفاده کنید)
events[].recordingId string بله شناسهٔ جلسه‌ای که رویداد دربارهٔ آن است
events[].seriesId string | null بله سری‌ای که جلسه هنگام این تغییر در آن بود؛ اگر در هیچ سری‌ای نبود یا سری‌ها خاموش باشند null است
events[].occurredAt string بله زمان رخ دادن تغییر (ISO 8601، به وقت UTC)؛ به‌جای مرتب‌کردن بر اساس آن، ترتیب همین فهرست را دنبال کنید
events[].type "recording.ready" بله recording.ready: لُب جلسه برای نخستین بار ساخته شد و جلسهٔ کامل آن را می‌توان خواند؛ ساخت دوبارهٔ بعدی recording.updated با regenerated است، هرگز یک recording.ready دیگر
events[].data object بله status جلسه پس از این تغییر
events[].data.status "QUEUED" | "TRANSCRIBING" | "NAMING" | "GENERATING" | "READY" | "FAILED" بله جلسه کجاست: QUEUED، TRANSCRIBING، NAMING (در انتظار نام گوینده‌ها)، GENERATING (لُب در حال ساخت است)، سپس READY؛ یا FAILED
events[] (type: "recording.failed") object جلسه‌ای ناموفق شد
events[].id string بله شناسهٔ خود رویداد که در هر بار خواندن یکسان است: با آن رویدادی را که قبلاً پردازش کرده‌اید کنار بگذارید. این شناسه نشانگر نیست (برای صفحهٔ بعد از nextCursor استفاده کنید)
events[].recordingId string بله شناسهٔ جلسه‌ای که رویداد دربارهٔ آن است
events[].seriesId string | null بله سری‌ای که جلسه هنگام این تغییر در آن بود؛ اگر در هیچ سری‌ای نبود یا سری‌ها خاموش باشند null است
events[].occurredAt string بله زمان رخ دادن تغییر (ISO 8601، به وقت UTC)؛ به‌جای مرتب‌کردن بر اساس آن، ترتیب همین فهرست را دنبال کنید
events[].type "recording.failed" بله recording.failed: جلسه به‌طور قطعی ناموفق شد؛ شکستی که لُب هنوز خودش دوباره امتحانش می‌کند هرگز فرستاده نمی‌شود. پس از retryRecording جلسه بی‌آنکه رویداد جداگانه‌ای داشته باشد ادامه می‌دهد و رویداد بعدی‌اش از پی آن می‌آید
events[].data object بله status جلسه و دلیل شکست آن
events[].data.status "QUEUED" | "TRANSCRIBING" | "NAMING" | "GENERATING" | "READY" | "FAILED" بله جلسه کجاست: QUEUED، TRANSCRIBING، NAMING (در انتظار نام گوینده‌ها)، GENERATING (لُب در حال ساخت است)، سپس READY؛ یا FAILED
events[].data.error object بله چرا جلسه ناموفق شد
events[].data.error.code string بله کد شکست، مثلاً NO_SPEECH یا AUDIO_CORRUPT
events[].data.error.retryable boolean بله این‌که retryRecording کمکی می‌کند یا نه: برای جلسهٔ بدون گفتار یا با صدای آسیب‌دیده false است
events[] (type: "recording.updated") object جلسه‌ای تغییر کرد: جلسه‌ای آماده، یا جلسهٔ حذف‌شده‌ای که برگشت
events[].id string بله شناسهٔ خود رویداد که در هر بار خواندن یکسان است: با آن رویدادی را که قبلاً پردازش کرده‌اید کنار بگذارید. این شناسه نشانگر نیست (برای صفحهٔ بعد از nextCursor استفاده کنید)
events[].recordingId string بله شناسهٔ جلسه‌ای که رویداد دربارهٔ آن است
events[].seriesId string | null بله سری‌ای که جلسه هنگام این تغییر در آن بود؛ اگر در هیچ سری‌ای نبود یا سری‌ها خاموش باشند null است
events[].occurredAt string بله زمان رخ دادن تغییر (ISO 8601، به وقت UTC)؛ به‌جای مرتب‌کردن بر اساس آن، ترتیب همین فهرست را دنبال کنید
events[].type "recording.updated" بله recording.updated: جلسه‌ای READY تغییر کرد و data.change می‌گوید چگونه؛ ویرایش جلسه‌ای که هنوز در جریان است با recording.ready همان جلسه می‌آید. استثنا restored است که پس از یک recording.deleted می‌آید: جلسه با همان وضعیتی که داشت برگشت، پس data.status آن می‌تواند هر وضعیتی باشد
events[].data object بله status جلسه و نوع تغییر
events[].data.status "QUEUED" | "TRANSCRIBING" | "NAMING" | "GENERATING" | "READY" | "FAILED" بله جلسه کجاست: QUEUED، TRANSCRIBING، NAMING (در انتظار نام گوینده‌ها)، GENERATING (لُب در حال ساخت است)، سپس READY؛ یا FAILED
events[].data.change "regenerated" | "renamed" | "transcript_edited" | "speakers_renamed" | "series_changed" | "restored" بله نوع تغییر، هرگز خود تغییر: regenerated (لُب دوباره ساخته شد)، renamed (عنوان تغییر کرد)، transcript_edited (صاحب جلسه رونوشت را اصلاح کرد)، speakers_renamed (نام یک گوینده تغییر کرد)، series_changed (جلسه به سری‌ای رفت، از سری بیرون آمد یا سری‌اش عوض شد) یا restored (جلسهٔ حذف‌شده برگشت)
events[] (type: "recording.deleted") object جلسه‌ای حذف شد
events[].id string بله شناسهٔ خود رویداد که در هر بار خواندن یکسان است: با آن رویدادی را که قبلاً پردازش کرده‌اید کنار بگذارید. این شناسه نشانگر نیست (برای صفحهٔ بعد از nextCursor استفاده کنید)
events[].recordingId string بله شناسهٔ جلسه‌ای که رویداد دربارهٔ آن است
events[].seriesId string | null بله سری‌ای که جلسه هنگام این تغییر در آن بود؛ اگر در هیچ سری‌ای نبود یا سری‌ها خاموش باشند null است
events[].occurredAt string بله زمان رخ دادن تغییر (ISO 8601، به وقت UTC)؛ به‌جای مرتب‌کردن بر اساس آن، ترتیب همین فهرست را دنبال کنید
events[].type "recording.deleted" بله recording.deleted: جلسه حذف شد، در هر وضعیتی؛ از آن پس خواندن جلسهٔ کامل آن پاسخ 404 می‌گیرد، مگر این‌که جلسه برگردانده شود
events[].data object بله status جلسه پس از این تغییر
events[].data.status "QUEUED" | "TRANSCRIBING" | "NAMING" | "GENERATING" | "READY" | "FAILED" بله جلسه کجاست: QUEUED، TRANSCRIBING، NAMING (در انتظار نام گوینده‌ها)، GENERATING (لُب در حال ساخت است)، سپس READY؛ یا FAILED
nextCursor string بله همیشه هست: آن را به‌عنوان after بفرستید تا رویدادهای بعدی را بگیرید. صفحه‌ای که به آخرین رویداد رسیده باشد نشانگری از همین لحظه می‌گیرد، پس پرسیدن پی‌درپی از حسابی که رویداد تازه‌ای ندارد هرگز به 410 نمی‌رسد

خطاها با { error: { code, message, details? } } پاسخ داده می‌شوند و code قرارداد است: خطاها را ببینید.