尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Pega un enlace de un vídeo de viajes de TikTok o Instagram y Globe Trip dibuja la ruta sobre un globo 3D: los lugares, el orden, los días y un itinerario. Además, puedes marcar en el globo dónde has estado y dónde quieres ir. Es una app web (Next.js) que se instala en el iPhone como una app más.檢視完整 README ↗
Pega un enlace de un vídeo de viajes de TikTok o Instagram y Globe Trip dibuja la ruta sobre un globo 3D: los lugares, el orden, los días y un itinerario. Además, puedes marcar en el globo dónde has estado y dónde quieres ir.
Es una app web (Next.js) que se instala en el iPhone como una app más.
lib/video.ts). Resuelve los enlaces cortos (vm.tiktok.com) y obtiene la descripción, la portada y el vídeo mediante un resolvedor público (tikwm), con la web de TikTok como respaldo (lugar etiquetado y subtítulos).lib/frames.ts): lo descarga y saca 8 fotogramas repartidos con ffmpeg. En los carruseles de fotos usa las fotos. En Instagram, la portada.lib/extract.ts): lee los textos de pantalla («📍 Kioto»), reconoce lugares y usa la descripción como apoyo. Devuelve cada lugar con coordenadas, días recomendados y en qué fotograma aparece.OPENAI_API_KEY y el TikTok no tiene subtítulos, también transcribe el audio (opcional).El mismo enlace pegado dos veces se responde desde caché: no gasta y tarda milisegundos.
Si el vídeo solo deja claro el país (paisajes sin nombres), la app no inventa una ruta de una parada: propone organizar un viaje a ese país.
lib/trips.ts): 10 rutas escritas a mano (Vietnam + Camboya + Tailandia, Atacama + Uyuni, Japón, Perú, Islandia…). Se abren al instante y no gastan IA; «Adaptar a mí» las pasa al planificador./api/plan).lib/risk.ts).orderStops en lib/geo.ts).fitFor en lib/geo.ts).nearbyCountries en lib/labels.ts); eliges cuáles o dejas que decida el planificador./api/activities). En los viajes de la IA llegan solas; en los demás, con un botón.npm install
cp .env.example .env.local # y pon tu ANTHROPIC_API_KEY
npm run dev # http://localhost:3000
git remote add origin https://github.com/TU_USUARIO/globe-trip.git
git push -u origin main
| Variable | ¿Obligatoria? | Para qué |
|---|---|---|
ANTHROPIC_API_KEY | Sí | Claude extrae los lugares. Crear clave |
NEXT_PUBLIC_MAPBOX_TOKEN | Recomendada | Globo con imagen de satélite en todos los niveles de zoom (sin él, usa la textura Blue Marble). Token público (pk.…), restringido a tu dominio de Vercel. Crear token |
OPENAI_API_KEY | Opcional | Transcribe el audio de los TikTok sin subtítulos |
MAPBOX_TOKEN | Opcional | Afina coordenadas en el servidor (puede ser el mismo token) |
ANTHROPIC_MODEL | Opcional | Por defecto claude-sonnet-5 |
RATE_LIMIT_PER_10_MIN | Opcional | Análisis por visitante cada 10 min (por defecto 10) |
TIKTOK_RESOLVER_URL | Opcional | Otro servicio para leer TikTok con la misma respuesta que tikwm (por defecto https://www.tikwm.com/api/?hd=0&url=) |
NEXT_PUBLIC_… se leen al compilar, así que también hace falta redesplegar cuando las cambies.Abre tu URL de Vercel en Safari → botón Compartir → Añadir a pantalla de inicio. Se abre a pantalla completa con su icono, como una app.
ANTHROPIC_MODEL=claude-haiku-4-5-20251001) ≈ 1 céntimo. Un plan de viaje ≈ 1-2 céntimos, y sus actividades otro tanto (las mismas paradas se sirven de caché 24 h).El límite por visitante (RATE_LIMIT_PER_10_MIN) evita que alguien con tu enlace te gaste la clave. Es por instancia del servidor; para un límite estricto, cámbialo por Vercel KV o Upstash.
app/
page.tsx → la app
api/analyze/route.ts → POST {url?, text?} → lugares del vídeo
api/plan/route.ts → POST {destino, días, presupuesto…} → viaje con presupuesto
api/activities/route.ts → POST {stops} → actividades por parada
manifest.ts → instalación como app (PWA)
components/
App.tsx → pantallas, estado y flujos
GlobeCanvas.tsx → globo 3D (react-globe.gl): cámara, zoom, alfileres, arcos
Sheet.tsx → hojas deslizables inferiores
PickSheet.tsx → «¿Cuáles te han gustado?»
PlannerSheet.tsx → «Crea tu viaje»
ItinerarySheet.tsx → itinerario con fotos, presupuesto, actividades y edición de paradas
PlaceSearch.tsx → buscador de lugares reutilizable y avisos de distancia
Activities.tsx → tarjetas y filtros de actividades
lib/
video.ts → leer TikTok / Instagram (texto + imágenes)
frames.ts → fotogramas con ffmpeg
labels.ts, places.json → nombres de países y ciudades en el globo (por zoom) y buscador
trips.ts → viajes listos
risk.ts → niveles de riesgo y enlaces a Exteriores
wiki.ts → fotos y descripción de cada lugar (Wikipedia)
extract.ts → Claude → ruta validada
geo.ts → distancias, encuadre de cámara, dónde insertar una parada y si encaja
demo.ts → rutas de ejemplo y lugares iniciales
public/textures/ → Tierra (NASA Blue Marble, dominio público), relieve y máscara de océano
public/cities.json → ~8.000 ciudades más (se cargan tras abrir la app)
public/borders.json → fronteras (Natural Earth 1:50m)
scripts/ → generan places.json, cities.json y borders.json
Tus lugares y rutas se guardan en el navegador (localStorage). El siguiente paso natural es añadir cuentas de usuario (por ejemplo Supabase) para sincronizarlos entre dispositivos.
npm test # lectura de TikTok/Instagram, validación de rutas, encuadre de cámara
npm run build
TIKTOK_RESOLVER_URL o edita lib/video.ts; la app sigue usando la web de TikTok y su oEmbed como respaldo.