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 postthumbnail_url— Miniature 480x480 (peut toujours se résoudre sur le CDN Vine)thumbnail_width/thumbnail_height— Toujours 480x480width/height— Dimensions d'intégration (600x600)html— Code d'intégration iframeprovider_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_urlvine.co/u/{numeric_id}vous donne le même ID utilisateur utilisé dans les tablesusersetimported_usersde 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