Skip to content
cccskills
FreePublished on GitHub

vine-oembed-metadata-recovery

Recover Vine video metadata (author, user ID, title, thumbnail) from vine.co oembed endpoint even though the Vine API and pages are dead. Use when: (1) you have Vine shortcode URLs (vine.co/v/XXXXX) and need to identify the creator, (2) the Vine page only shows a loading spinner, (3) archive-api.vineapp.com returns 404, (4) need to map Vine shortcodes to user IDs for cross-referencing against the divine.video database. The oembed endpoint is a still-live metadata oracle for the otherwise-dead Vine platform.

The English summary is being prepared. Showing the original description.

Works withX (Twitter)
See how to install

Files included (1)

  • SKILL.md4.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Vine oEmbed Metadata Recovery

Problem

Vine.co pages no longer render content — the SPA shell loads but the backend API (archive-api.vineapp.com) returns 404, so pages just show a loading spinner. However, the oembed endpoint is still live and returns structured metadata for any valid Vine URL.

Context / Trigger Conditions

  • You have Vine URLs in the format vine.co/v/{shortcode}
  • The Vine page shows only a loading spinner (SPA shell loads, API calls fail)
  • archive-api.vineapp.com/timelines/posts/s/{shortcode} returns 404
  • You need to identify which creator made a specific Vine
  • You need to map Vine shortcodes to Vine user IDs

Solution

Single Lookup

Query the oembed endpoint:

GET https://vine.co/oembed.json?url=https://vine.co/v/{SHORTCODE}

Response Fields

The oembed response provides:

  • author_name — Vine username (e.g., "Kenrealdihboss")
  • author_url — Profile URL containing the Vine user ID (e.g., https://vine.co/u/1306031740015583232)
  • title — Post description/caption
  • thumbnail_url — 480x480 thumbnail (may still resolve on Vine CDN)
  • thumbnail_width / thumbnail_height — Always 480x480
  • width / height — Embed dimensions (600x600)
  • html — Iframe embed code
  • provider_name — "Vine"
  • type — "video"
  • version — "1.0"
  • cache_age — Cache duration in seconds

Extract User ID

The Vine numeric user ID is in the author_url path:

author_url: "https://vine.co/u/1306031740015583232"
→ user_id: 1306031740015583232

Bulk Recovery Pattern

If you have a list of Vine shortcodes (from Wayback CDX crawls, social media embeds, etc.):

import requests
import time

def get_vine_oembed(shortcode):
    url = f"https://vine.co/oembed.json?url=https://vine.co/v/{shortcode}"
    resp = requests.get(url, timeout=10)
    if resp.status_code == 200:
        data = resp.json()
        user_id = data.get("author_url", "").split("/u/")[-1]
        return {
            "shortcode": shortcode,
            "username": data.get("author_name"),
            "user_id": user_id,
            "title": data.get("title"),
            "thumbnail_url": data.get("thumbnail_url"),
        }
    return None

# Rate-limit to be respectful
for shortcode in shortcodes:
    result = get_vine_oembed(shortcode)
    if result:
        print(f"{result['shortcode']} → {result['username']} (ID: {result['user_id']})")
    time.sleep(0.5)

Cross-Reference with Database

Once you have the user ID, look up in the divine.video database:

SELECT * FROM users WHERE id = '1306031740015583232';
SELECT * FROM outreach_contacts WHERE user_id = '1306031740015583232';

Verification

curl -s "https://vine.co/oembed.json?url=https://vine.co/v/iLrDJJWn9e6" | python3 -m json.tool

Should return JSON with author_name, author_url, title, thumbnail_url, etc.

Sources of Vine Shortcodes

  • Wayback Machine CDX API: http://web.archive.org/cdx/search/cdx?url=vine.co/v/*&output=json
  • Embedded Vine tweets on Twitter/X
  • Reddit posts linking to vine.co/v/
  • Tumblr embeds (many Vine creators cross-posted)
  • Blog posts and news articles embedding Vines

Notes

  • The oembed endpoint appears to be served separately from the main Vine API infrastructure, which is why it survived while everything else died
  • Thumbnail CDN URLs from oembed may or may not still resolve — worth checking
  • This works for individual Vine posts but NOT for user profile lookups
  • The author_url format vine.co/u/{numeric_id} gives you the same user ID used in the divine.video database's users and imported_users tables
  • Be respectful with rate limits — this endpoint is still running and we don't want to overwhelm it

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Fix ArgoCD ExternalSecret deployment failing with "namespace X is not permitted in project Y". Use when: (1) ExternalSecret shows OutOfSync in ArgoCD but won't sync, (2) ArgoCD application status shows "namespace X is not permitted in project 'infrastructure'", (3) ExternalSecret targets a namespace managed by a different ArgoCD project, (4) Using apps-of-apps pattern with separate infrastructure and application projects.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile265Updated Oct 23, 2026

Art direction for any content — reads text, PDF, Word, HTML, PPT, then proposes 2-3 creative directions with photography style, mood, and visual language. After selection, generates AI image prompts and visual briefs section-by-section. Use when the user shares content and needs visual direction, image sourcing, or creative direction for any material.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile265Updated Oct 23, 2026

Fix "Null check operator used on a null value" errors when an object is set to null during an async await. Use when: (1) Object reference is nullified while awaiting, (2) Code accesses object with ! after await returns, (3) Cancel/dispose operations run concurrently with async operations on same object. Solution: capture local reference before await.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile265Updated Oct 23, 2026

Add custom metadata headers (x-amz-meta-*) to AWS v4 signed requests for GCS S3-compatible API. Use when: (1) Adding custom metadata to GCS uploads via S3 API, (2) Getting signature mismatch errors after adding new headers, (3) x-amz-meta-* headers being ignored or causing 403 errors. Custom headers MUST be included in canonical headers and signed headers list.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile265Updated Oct 23, 2026

Fix password/secret authentication failures caused by trailing newlines when creating Google Cloud secrets (or similar) with bash here-strings. Use when: (1) Password authentication fails with correct password, (2) Secret created with `<<< "value"` syntax, (3) Error like "password authentication failed" or "invalid token" despite correct value. Bash here-strings (`<<<`) add a trailing newline that corrupts secrets.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile265Updated Oct 23, 2026

Fix silent video/media processing failures caused by URL extraction code that filters on file extensions (.mp4, .webm, .webp). Use when: (1) Media moderation, transcoding, or analysis silently skips files from Blossom or content-addressed storage servers, (2) URL extraction from Nostr event tags (imeta, r tags) drops URLs without recognized extensions, (3) CDN fallback URLs append .mp4 but the actual server uses extensionless content-addressed paths like /{sha256}. Common in Nostr video events (kind 34236) where different clients use different URL formats.

The English summary is being prepared. Showing the original description.

divinevideo/divine-mobile265Updated Oct 23, 2026

See all skills by divinevideo

Report a problem with this skill