Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungA PASS over an empty set is the same string as a real pass(21.09.2026 um 01:08 Uhr)
Sichere ProgrammierungThe Commit That Wouldn’t Merge(21.09.2026 um 01:23 Uhr)
Sichere ProgrammierungWebRTC at Scale(21.09.2026 um 01:35 Uhr)
Sichere ProgrammierungSemantic Versioning (SemVer): Why Version Numbers Have Three Parts(21.09.2026 um 01:40 Uhr)
Sichere ProgrammierungWhat If AI Works Too Well?(21.09.2026 um 01:46 Uhr)
Sichere ProgrammierungA PASS over an empty set is the same string as a real pass(21.09.2026 um 01:08 Uhr)
Sichere ProgrammierungThe Commit That Wouldn’t Merge(21.09.2026 um 01:23 Uhr)
Sichere ProgrammierungWebRTC at Scale(21.09.2026 um 01:35 Uhr)
Sichere ProgrammierungSemantic Versioning (SemVer): Why Version Numbers Have Three Parts(21.09.2026 um 01:40 Uhr)
Sichere ProgrammierungWhat If AI Works Too Well?(21.09.2026 um 01:46 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

What better way to understand deeply media apis provided by modern browsers than to build something cool?

Reagiere als Erste:r — dein Feedback zählt!

In this blog post, I’ll be documenting my approach, tools, implementation details, and services used while building my own Loom-inspired video recorder.

If you’re an engineer like me and want to dive straight into the code, the repo is available here 👉 GitHub Repository

Tech Stack & Third-Party Dependencies

The project is built using a modern web stack:

  • Next.js — App routing, server actions & API routes

  • React — Component-based UI architecture

  • PostgreSQL — Database for persisting user and video metadata

  • Google & GitHub OAuth — Seamless social authentication

  • Prisma — Type-safe ORM for database management

  • TailwindCSS — Rapid styling and responsive design

Understanding Social Auth (From My POV)

I implemented OAuth authentication with both Google and GitHub from scratch, which gave me a deeper understanding of how social authentication works under the hood.

This process involved:

  • Handling the authorization code exchange
  • Fetching access tokens
  • Retrieving user profile data via Next.js API routes

Both providers have slightly different flows, but getting them to work seamlessly together was incredibly rewarding.

Video Recording with the MediaRecorder API

const [isRecording, setIsRecording] = useState(false);
const mediaRecorderRef = useRef<MediaRecorder | null>(null);
const recordedChunks: Blob[] = [];

const startRecording = async () => {
  const stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true });
  mediaRecorderRef.current = new MediaRecorder(stream, { mimeType: "video/webm" });

  mediaRecorderRef.current.ondataavailable = (e) => {
    if (e.data.size > 0) recordedChunks.push(e.data);
  };

  mediaRecorderRef.current.onstop = () => {
    const blob = new Blob(recordedChunks, { type: "video/webm" });
    const videoUrl = URL.createObjectURL(blob);
    console.log("Recorded video URL:", videoUrl);
  };

  mediaRecorderRef.current.start();
  setIsRecording(true);
};

Handling Media Streams & Uploads

Once recording worked, I moved on to uploading videos efficiently.

I used the FormData API to send the recorded blob to the backend, which handles storage via Cloudinary.

This allowed me to easily manage uploads, generate thumbnails, and display the video later on the frontend.

Listing & Deleting Videos

I also implemented endpoints, server actions, and a management UI for user videos.
This included:

  • Fetching a user’s uploaded videos
  • Deleting videos by ID
  • Displaying thumbnails, titles, and timestamps

With this, the full loop was complete:
Record ➝ Upload ➝ Manage ✅

⚠️ Major Challenge — Mobile Recording

One ongoing challenge I’m facing is recording on mobile devices.

For some reason, mobile browsers often fail to start recording or capture either audio or video. I suspect this is due to:

  • Permission handling differences across mobile browsers
  • Limited MIME type support for MediaRecorder
  • Streaming of videos in chunks instead of sending the whole binary Object accross a single request

Still debugging this. If you’ve solved this before, I’d love to hear from you!

🌐 Links

Live Demo: loop.oauife.uk
Source Code: github___repo

🧭 Conclusion

For me, building tools and clones is the best way to deeply understand new technologies.

Throughout this project, I learned a lot about:

  1. Browser APIs
  2. Real-time media handling
  3. The full-stack flow from recording to upload

Every challenge taught me something new and that’s what makes this journey fun.

If you’ve experimented with MediaRecorder or mobile stream capture, I’d love your insights!
Feel free to reach out at [email protected]

Please check out Loop let me know what you think! 🙌

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten What better way to understand deeply media apis provided by modern browsers than to build something cool?

Thematisch verwandte Begriffe: What, better, understand, deeply · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-93960 | A vulnerability was identified in Pixelfed up to 0.12.11. Impacted is th…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick