本文へ移動
cccskills
無料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.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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.

日本語の概要は準備中です。原文の説明を表示しています。

divinevideo/divine-mobile2662026年10月13日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

divinevideo/divine-mobile2662026年10月13日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

divinevideo/divine-mobile2662026年10月13日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

divinevideo/divine-mobile2662026年10月13日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

divinevideo/divine-mobile2662026年10月13日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

divinevideo/divine-mobile2662026年10月13日 更新

divinevideo のスキルをすべて見る

このスキルの問題を報告する