vine-oembed-metadata-recovery

Par divinevideo · divine-mobile

Récupère les métadonnées de vidéos Vine (auteur, ID utilisateur, titre, miniature) depuis l'endpoint oembed de vine.co, même si l'API et les pages Vine sont hors service. À utiliser quand : (1) vous disposez d'URLs courtes Vine (vine.co/v/XXXXX) et souhaitez identifier le créateur, (2) la page Vine n'affiche qu'un spinner de chargement, (3) archive-api.vineapp.com renvoie une erreur 404, (4) vous devez associer des shortcodes Vine à des IDs utilisateur pour des recoupements avec la base de données divine.video. L'endpoint oembed est un oracle de métadonnées encore actif pour la plateforme Vine, par ailleurs définitivement fermée.

npx skills add https://github.com/divinevideo/divine-mobile --skill vine-oembed-metadata-recovery

Récupération de métadonnées oEmbed Vine

Problème

Les pages Vine.co ne rendent plus le contenu — le shell SPA se charge mais l'API backend (archive-api.vineapp.com) retourne 404, donc les pages affichent simplement un spinner de chargement. Cependant, l'endpoint oembed est toujours actif et retourne des métadonnées structurées pour toute URL Vine valide.

Contexte / Conditions déclenchantes

  • Vous avez des URLs Vine au format vine.co/v/{shortcode}
  • La page Vine affiche uniquement un spinner de chargement (shell SPA se charge, appels API échouent)
  • archive-api.vineapp.com/timelines/posts/s/{shortcode} retourne 404
  • Vous devez identifier quel créateur a créé une Vine spécifique
  • Vous devez mapper les shortcodes Vine aux IDs utilisateur Vine

Solution

Recherche unique

Interrogez l'endpoint oembed :

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

Champs de réponse

La réponse oembed fournit :

  • author_name — Nom d'utilisateur Vine (ex. « Kenrealdihboss »)
  • author_url — URL de profil contenant l'ID utilisateur Vine (ex. https://vine.co/u/1306031740015583232)
  • title — Description/légende du post
  • thumbnail_url — Miniature 480x480 (peut toujours se résoudre sur le CDN Vine)
  • thumbnail_width / thumbnail_height — Toujours 480x480
  • width / height — Dimensions d'intégration (600x600)
  • html — Code d'intégration iframe
  • provider_name — « Vine »
  • type — « video »
  • version — « 1.0 »
  • cache_age — Durée du cache en secondes

Extraire l'ID utilisateur

L'ID utilisateur numérique Vine se trouve dans le chemin author_url :

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

Motif de récupération en masse

Si vous avez une liste de shortcodes Vine (provenant de crawls Wayback CDX, d'intégrations réseaux sociaux, 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)

Recoupement avec base de données

Une fois que vous avez l'ID utilisateur, cherchez dans la base de données divine.video :

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

Vérification

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

Devrait retourner du JSON avec author_name, author_url, title, thumbnail_url, etc.

Sources de shortcodes Vine

  • API Wayback Machine CDX : http://web.archive.org/cdx/search/cdx?url=vine.co/v/*&output=json
  • Tweets Vine intégrés sur Twitter/X
  • Posts Reddit pointant vers vine.co/v/
  • Intégrations Tumblr (de nombreux créateurs Vine ont posté en croisant)
  • Articles de blogs et actualités intégrant des Vines

Notes

  • L'endpoint oembed semble être servi séparément de l'infrastructure API Vine principale, ce qui explique pourquoi il a survécu alors que tout le reste a disparu
  • Les URLs du CDN de miniatures provenant de oembed peuvent ou non se résoudre toujours — cela vaut la peine de vérifier
  • Cela fonctionne pour les posts Vine individuels mais PAS pour les recherches de profil utilisateur
  • Le format author_url vine.co/u/{numeric_id} vous donne le même ID utilisateur utilisé dans les tables users et imported_users de la base de données divine.video
  • Soyez respectueux avec les limites de débit — cet endpoint est toujours actif et nous ne voulons pas le surcharger

Skills similaires