Skip to content

Enhance bot functionality with improved error handling and media support - #48

Closed
JakobStadlhuber wants to merge 56 commits into
screenappai:mainfrom
JakobStadlhuber:main
Closed

JakobStadlhuber wants to merge 56 commits into
screenappai:mainfrom
JakobStadlhuber:main

Conversation

@JakobStadlhuber

Copy link
Copy Markdown
Contributor

No description provided.

JakobStadlhuber and others added 30 commits May 26, 2026 12:12
…ts, refactor connection string parsing, and improve error logging for signed URL generation. Update documentation to clarify Azure URL behavior.
…ation metadata handling. Bump version to 1.2.12.
…with `wait_for_pulseaudio`, reduced delays, optimized selector handling, and improved Teams prewarm customization. Updated version to 1.2.13.
…improve chunk upload handling, and add duration metadata. Bump version to 1.2.14.
… upload failure handling and error logging across bots. Bump version to 1.2.16.
…g, improved error recovery, and task completion acknowledgment. Update docs and bump version to 1.2.17.
…tion detection, debug logging, and error reporting enhancements.
… text recognition and improved participant count parsing. Bump version to 1.2.19.
…eanup timing in Google Meet bot redirect flow. Bump version to 1.2.20.
…rove Redis DB handling, and update documentation. Bump version to 1.2.21.
… improvements, and anonymous join retries. Update docs and bump version to 1.2.22.
Generalize the connectOverCDP branch in src/lib/chromium.ts so Zoom bots
can reuse an already-running Chrome, mirroring the Google Meet path.

- Google keeps reusing the browser's first context (logged-in profile /
  storageState); Zoom always gets a fresh isolated context per meeting to
  avoid /wc/join/ state bleeding across runs.
- Non-Google bots now get camera/mic grantPermissions for parity with the
  non-CDP launch path.
- Opt-in: with ZOOM_CHROME_CDP_URL unset, Zoom falls back to chromium.launch().
- This does not change Zoom's SDK-vs-webclient posture; the bot still drives
  the web client and records via tab capture.

# Conflicts:
#	docker-compose.yml
…improvements)

# Conflicts:
#	.env.example
#	docker-compose.yml
#	package-lock.json
#	package.json
#	src/config.ts
#	src/lib/chromium.ts
Zoom records via real-time tab capture (getDisplayMedia + MediaRecorder),
often under software GL (swiftshader). VP9 can't keep up there: the encoder
gets starved, drops frames, and emits a stuttery, very low-bitrate stream
(observed ~187 kbps at 1280x662) that looks laggy on playback. ffprobe on a
test clip showed avg_frame_rate=0/0 and nb_frames=N/A -- the classic
signature of MediaRecorder frame drops.

- recording.ts: add vp8MimeType and a preferVp8 flag on
  getRecordingMimeTypesForExtension. When true, VP8 is tried first (Chrome
  always supports video/webm;codecs=vp8,opus), with VP9 kept as fallback.
- RecordingTask (Zoom-only): pass preferVp8=true and set MediaRecorder
  videoBitsPerSecond from config (default 4 Mbps) so the encoder isn't starved.
- Google Meet is unchanged: it still calls the helper without preferVp8, so
  it keeps its VP9 default.
ddilushan and others added 23 commits June 25, 2026 07:39
Fix Zoom CDP web-client join and bump v1.3.3
feat(zoom): add configurable RTMS recording
@JakobStadlhuber JakobStadlhuber closed this by deleting the head repository Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants