Skip to content

Add Facebook (reels) support to video-link import#92

Merged
windoze95 merged 1 commit into
mainfrom
feat/video-platforms-yt-fb-pin
Jun 30, 2026
Merged

Add Facebook (reels) support to video-link import#92
windoze95 merged 1 commit into
mainfrom
feat/video-platforms-yt-fb-pin

Conversation

@windoze95

Copy link
Copy Markdown
Owner

What

Third platform after TikTok (#89) and Instagram (#90): Facebook reels.

  • fetchFacebookGET /v1/facebook/postpost_id (VideoID), description (caption), video.{sd_url, hd_url, length_in_second}. Prefers the SD stream (smaller → faster download, stays under the sampler's 120 MB cap; frames are downscaled to 640px regardless), falling back to HD. Seconds → rounded ms.
  • Best-effort transcript via /v1/facebook/post/transcript (often null, like Instagram → falls back to caption + sampled frames).

Verified live

A buzzfeedtasty reel's fbcdn sd_url downloads server-side (HTTP 206, video/mp4) — so Facebook fits the existing frames pipeline with no special handling.

Tests (offline)

TestFetchVideo_Facebook (SD preferred, seconds→ms, transcript populated), _FallsBackToHD, _NotAVideo.

Scope note — YouTube & Pinterest are NOT in this PR

They don't fit the video-frames pipeline:

  • YouTube: ScrapeCreators' /v1/youtube/video returns no downloadable media URL (only metadata + caption tracks).
  • Pinterest: image-dominant — most recipe pins are images with a rich description, not video.

Both need a separate transcript/description text-extraction path (extract from text when there's no video to sample). That's a focused follow-up so this PR stays clean and verifiable.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BU4UWZutHd1AnK3XAf7H19

Implements fetchFacebook in the ScrapeCreators client, the third platform
after TikTok and Instagram:

- GET /v1/facebook/post → post_id (VideoID), description (caption), and
  video.{sd_url, hd_url, length_in_second}. Prefers the smaller SD stream
  (downloads faster, stays under the sampler's size cap; frames are scaled
  down regardless), falling back to HD. Duration seconds → rounded ms.
- Best-effort transcript via /v1/facebook/post/transcript (often null, like
  Instagram; falls back to caption + sampled frames).
- Verified live: a buzzfeedtasty reel's fbcdn sd_url downloads server-side
  (HTTP 206, video/mp4), so it fits the existing frames pipeline cleanly.

Tests: Facebook fetch (sd preferred, seconds→ms, transcript), HD fallback,
and the not-a-video rejection. All offline.

Note: YouTube and Pinterest do NOT fit the frames pipeline — ScrapeCreators'
YouTube endpoint returns no downloadable media, and Pinterest is
image-dominant. Both need a separate transcript/description text-extraction
path, coming in a follow-up.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BU4UWZutHd1AnK3XAf7H19
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@windoze95 windoze95 merged commit ada704b into main Jun 30, 2026
1 check passed
@windoze95 windoze95 deleted the feat/video-platforms-yt-fb-pin branch June 30, 2026 09:00
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.

1 participant