{"id":130,"date":"2026-03-30T20:00:12","date_gmt":"2026-03-30T20:00:12","guid":{"rendered":"https:\/\/glaudiotecnology.com.br\/?page_id=130"},"modified":"2026-03-30T22:03:08","modified_gmt":"2026-03-30T22:03:08","slug":"player","status":"publish","type":"page","link":"https:\/\/glaudiotecnology.com.br\/index.php\/player\/","title":{"rendered":"PLAYER"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"130\" class=\"elementor elementor-130\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c75f256 e-con-full e-flex e-con e-parent\" data-id=\"c75f256\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7204250 elementor-widget elementor-widget-html\" data-id=\"7204250\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n  .rv-wrap {\n    --text: #f4f6fb;\n    --muted: #aeb6c7;\n    --shadow: 0 20px 60px rgba(0,0,0,.45);\n    --radius: 28px;\n    width: 100%;\n    min-height: 760px;\n    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;\n    background:\n      radial-gradient(circle at top left, rgba(124,58,237,.30), transparent 28%),\n      radial-gradient(circle at bottom right, rgba(255,45,85,.25), transparent 30%),\n      linear-gradient(180deg, #08080b, #12131b 40%, #090a0e);\n    color: var(--text);\n    display: grid;\n    place-items: center;\n    padding: 24px;\n    overflow: hidden;\n    border-radius: 28px;\n    position: relative;\n  }\n\n  .rv-panel {\n    width: min(1080px, 100%);\n    min-height: 760px;\n    background: rgba(18,18,28,.72);\n    border: 1px solid rgba(255,255,255,.08);\n    border-radius: var(--radius);\n    box-shadow: var(--shadow);\n    backdrop-filter: blur(18px);\n    overflow: hidden;\n    position: relative;\n  }\n\n  .rv-bg {\n    position: absolute;\n    inset: 0;\n    background-position: center;\n    background-size: cover;\n    transform: scale(1.08);\n    filter: blur(32px) brightness(.42);\n    opacity: .92;\n    transition: background-image .8s ease;\n  }\n\n  .rv-bg::after {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.44) 48%, rgba(0,0,0,.82));\n  }\n\n  .rv-stage {\n    position: absolute;\n    inset: 0;\n    display: grid;\n    grid-template-rows: auto 1fr auto auto;\n    padding: 24px;\n    z-index: 2;\n  }\n\n  .rv-top {\n    display: flex;\n    justify-content: flex-end;\n    align-items: flex-start;\n    z-index: 6;\n  }\n\n  .rv-badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    padding: 10px 14px;\n    border-radius: 999px;\n    background: rgba(255,255,255,.08);\n    border: 1px solid rgba(255,255,255,.08);\n    font-size: 13px;\n    color: var(--muted);\n  }\n\n  .rv-dot {\n    width: 10px;\n    height: 10px;\n    border-radius: 50%;\n    background: #2ee66b;\n    box-shadow: 0 0 14px rgba(46,230,107,.85);\n    animation: rv-pulse 1.7s infinite;\n  }\n\n  @keyframes rv-pulse {\n    0% { transform: scale(1); opacity: 1; }\n    50% { transform: scale(1.2); opacity: .7; }\n    100% { transform: scale(1); opacity: 1; }\n  }\n\n  .rv-media-stage {\n    position: relative;\n    display: grid;\n    place-items: center;\n    min-height: 0;\n    z-index: 2;\n    margin-top: 8px;\n  }\n\n  .rv-video-layer,\n  .rv-art-layer {\n    position: absolute;\n    inset: 28px 28px 120px 28px;\n    border-radius: 28px;\n    overflow: hidden;\n    opacity: 0;\n    transform: scale(.975);\n    filter: blur(10px);\n    transition:\n      opacity .7s cubic-bezier(.22,1,.36,1),\n      transform .7s cubic-bezier(.22,1,.36,1),\n      filter .7s cubic-bezier(.22,1,.36,1);\n    background: rgba(255,255,255,.04);\n    border: 1px solid rgba(255,255,255,.08);\n    box-shadow: 0 18px 40px rgba(0,0,0,.35);\n  }\n\n  .rv-video-layer.is-active,\n  .rv-art-layer.is-active {\n    opacity: 1;\n    transform: scale(1);\n    filter: blur(0);\n    z-index: 3;\n  }\n\n  .rv-video-layer.is-hidden,\n  .rv-art-layer.is-hidden {\n    pointer-events: none;\n  }\n\n  .rv-video-frame,\n  .rv-video-layer iframe {\n    width: 100%;\n    height: 100%;\n    border: 0;\n    display: block;\n  }\n\n  .rv-art-layer {\n    display: grid;\n    place-items: center;\n  }\n\n  .rv-art-wrap {\n    position: relative;\n    width: min(320px, 32vw);\n    height: min(320px, 32vw);\n    aspect-ratio: 1\/1;\n    border-radius: 26px;\n    overflow: visible;\n  }\n\n  .rv-ring,\n  .rv-ring2 {\n    position: absolute;\n    inset: -18px;\n    border-radius: 34px;\n    border: 1px solid rgba(255,255,255,.08);\n    animation: rv-spin 18s linear infinite;\n    pointer-events: none;\n  }\n\n  .rv-ring2 {\n    inset: -30px;\n    border-style: dashed;\n    opacity: .30;\n    animation-direction: reverse;\n    animation-duration: 26s;\n  }\n\n  @keyframes rv-spin {\n    from { transform: rotate(0deg); }\n    to { transform: rotate(360deg); }\n  }\n\n  .rv-art {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    border-radius: 28px;\n    box-shadow: 0 18px 40px rgba(0,0,0,.45);\n    position: relative;\n    z-index: 2;\n    background: rgba(255,255,255,.05);\n    border: 1px solid rgba(255,255,255,.10);\n    display: block;\n    transform: scale(1);\n    opacity: 1;\n    transition: transform .7s cubic-bezier(.22,1,.36,1), opacity .45s ease, filter .7s ease;\n    filter: saturate(1.02);\n  }\n\n  .rv-art.is-switching {\n    transform: scale(.92);\n    opacity: .35;\n    filter: blur(10px) saturate(.88);\n  }\n\n  .rv-ticker {\n    position: absolute;\n    left: 24px;\n    right: 24px;\n    bottom: 52px;\n    display: grid;\n    grid-template-columns: 1fr auto;\n    gap: 0;\n    align-items: stretch;\n    transform: translateY(120px) scale(.98);\n    opacity: 0;\n    transition: .65s cubic-bezier(.22,1,.36,1);\n    filter: drop-shadow(0 20px 45px rgba(0,0,0,.38));\n    z-index: 8;\n  }\n\n  .rv-ticker.show {\n    transform: translateY(0) scale(1);\n    opacity: 1;\n  }\n\n  .rv-ticker-main {\n    min-width: 0;\n    background: linear-gradient(90deg, rgba(74,18,140,.98), rgba(151,38,211,.94));\n    padding: 20px 26px;\n    border-top-left-radius: 18px;\n    border-bottom-left-radius: 18px;\n    border: 1px solid rgba(255,255,255,.10);\n    border-right: 0;\n    position: relative;\n    overflow: hidden;\n    backdrop-filter: blur(10px);\n  }\n\n  .rv-ticker-main::before {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    background: linear-gradient(90deg, rgba(255,255,255,.18), transparent 28%);\n    pointer-events: none;\n  }\n\n  .rv-ticker-side {\n    background: linear-gradient(180deg, #ffd60a, #ffb703);\n    color: #212121;\n    min-width: 172px;\n    padding: 16px 18px;\n    font-weight: 800;\n    display: grid;\n    align-content: center;\n    justify-items: start;\n    border-top-right-radius: 18px;\n    border-bottom-right-radius: 18px;\n    border: 1px solid rgba(255,255,255,.10);\n    position: relative;\n    overflow: hidden;\n    box-shadow: inset 0 1px 0 rgba(255,255,255,.25);\n  }\n\n  .rv-artist {\n    font-size: 14px;\n    letter-spacing: .16em;\n    text-transform: uppercase;\n    font-weight: 900;\n    opacity: .96;\n    margin-bottom: 10px;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  .rv-title {\n    font-size: clamp(24px, 2.4vw, 34px);\n    font-weight: 900;\n    line-height: 1.04;\n    text-transform: uppercase;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    text-shadow: 0 8px 24px rgba(0,0,0,.22);\n  }\n\n  .rv-bars {\n    display: flex;\n    align-items: end;\n    gap: 5px;\n    margin-top: 10px;\n    height: 34px;\n  }\n\n  .rv-bars span {\n    width: 7px;\n    border-radius: 999px;\n    background: rgba(124,58,237,.68);\n    animation: rv-bars 1.05s infinite ease-in-out;\n  }\n\n  .rv-bars span:nth-child(2){ animation-delay: .12s; }\n  .rv-bars span:nth-child(3){ animation-delay: .24s; }\n  .rv-bars span:nth-child(4){ animation-delay: .36s; }\n  .rv-bars span:nth-child(5){ animation-delay: .48s; }\n\n  @keyframes rv-bars {\n    0%,100% { height: 8px; }\n    50% { height: 32px; }\n  }\n\n  .rv-footer {\n    position: absolute;\n    left: 24px;\n    right: 24px;\n    bottom: 16px;\n    z-index: 9;\n    display: flex;\n    justify-content: center;\n    pointer-events: none;\n  }\n\n  .rv-credit {\n    font-size: 12px;\n    color: rgba(255,255,255,.58);\n    letter-spacing: .08em;\n    text-transform: uppercase;\n    background: rgba(0,0,0,.18);\n    padding: 6px 10px;\n    border-radius: 999px;\n    border: 1px solid rgba(255,255,255,.06);\n    backdrop-filter: blur(8px);\n  }\n\n  .rv-audio {\n    position: absolute;\n    left: -9999px;\n    width: 1px;\n    height: 1px;\n    opacity: 0;\n    pointer-events: none;\n  }\n\n  .rv-tap {\n    position: absolute;\n    inset: 0;\n    z-index: 10;\n    display: none;\n    align-items: center;\n    justify-content: center;\n    background: rgba(0,0,0,.42);\n    color: #fff;\n    font-size: 20px;\n    font-weight: 700;\n    cursor: pointer;\n  }\n\n  .rv-tap.show {\n    display: flex;\n  }\n\n  @media (max-width: 980px) {\n    .rv-wrap { min-height: 640px; padding: 14px; }\n    .rv-panel { min-height: 640px; }\n    .rv-video-layer,\n    .rv-art-layer {\n      inset: 20px 20px 138px 20px;\n      border-radius: 22px;\n    }\n    .rv-art-wrap {\n      width: min(220px, 56vw);\n      height: min(220px, 56vw);\n    }\n    .rv-title { white-space: normal; }\n    .rv-ticker {\n      left: 16px;\n      right: 16px;\n      bottom: 46px;\n      grid-template-columns: 1fr;\n    }\n    .rv-ticker-main {\n      border-radius: 18px 18px 0 0;\n      border-right: 1px solid rgba(255,255,255,.10);\n    }\n    .rv-ticker-side {\n      min-width: 100%;\n      border-radius: 0 0 18px 18px;\n    }\n  }\n<\/style>\n\n<div class=\"rv-wrap\" id=\"rvPlayer\">\n  <section class=\"rv-panel\">\n    <div class=\"rv-bg\" id=\"rvBg\"><\/div>\n\n    <div class=\"rv-stage\">\n      <div class=\"rv-top\">\n        <div class=\"rv-badge\" id=\"rvSourceLabel\">\n          <span class=\"rv-dot\"><\/span>\n          Ao vivo\n        <\/div>\n      <\/div>\n\n      <div class=\"rv-media-stage\">\n        <div class=\"rv-video-layer is-hidden\" id=\"rvVideoLayer\">\n          <div class=\"rv-video-frame\" id=\"rvVideoFrame\"><\/div>\n        <\/div>\n\n        <div class=\"rv-art-layer is-active\" id=\"rvArtLayer\">\n          <div class=\"rv-art-wrap\">\n            <div class=\"rv-ring\"><\/div>\n            <div class=\"rv-ring2\"><\/div>\n            <img id=\"rvArt\" class=\"rv-art\" alt=\"Capa da m\u00fasica\" \/>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"rv-ticker\" id=\"rvTicker\">\n        <div class=\"rv-ticker-main\">\n          <div class=\"rv-artist\" id=\"rvArtist\">ARTISTA<\/div>\n          <div class=\"rv-title\" id=\"rvTitle\">T\u00cdTULO DA M\u00daSICA<\/div>\n        <\/div>\n        <div class=\"rv-ticker-side\">\n          <div style=\"font-size:28px;line-height:1;\">M\u00daSICA<\/div>\n          <div class=\"rv-bars\"><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"rv-footer\">\n        <div class=\"rv-credit\">P\u00e1gina desenvolvida por GLTEC<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"rv-tap\" id=\"rvTap\">Clique para iniciar o \u00e1udio<\/div>\n    <audio id=\"rvAudio\" class=\"rv-audio\" autoplay playsinline crossorigin=\"anonymous\"><\/audio>\n  <\/section>\n<\/div>\n\n<script src=\"https:\/\/www.youtube.com\/iframe_api\"><\/script>\n<script>\n(function(){\n  const FALLBACK_ART = 'https:\/\/is1-ssl.mzstatic.com\/image\/thumb\/Music126\/v4\/11\/22\/33\/11223344-5566-7788-99aa-bbccddeeff00\/cover.jpg\/600x600bb.jpg';\n  const AUDIO_URL = 'https:\/\/glaudiotecnology.srv.br\/listen\/r%C3%A1dio_f%C3%A1cil\/radio.mp3';\n  const NOW_PLAYING_URL = '\/wp-json\/radiovisual\/v1\/now-playing';\n  const RESOLVE_URL = '\/wp-json\/radiovisual\/v1\/resolve';\n  const POLL_MS = 10000;\n  const TICKER_MS = 10000;\n\n  const el = {\n    art: document.getElementById('rvArt'),\n    bg: document.getElementById('rvBg'),\n    artist: document.getElementById('rvArtist'),\n    title: document.getElementById('rvTitle'),\n    ticker: document.getElementById('rvTicker'),\n    audio: document.getElementById('rvAudio'),\n    source: document.getElementById('rvSourceLabel'),\n    tap: document.getElementById('rvTap'),\n    player: document.getElementById('rvPlayer'),\n    artLayer: document.getElementById('rvArtLayer'),\n    videoLayer: document.getElementById('rvVideoLayer'),\n    videoFrame: document.getElementById('rvVideoFrame')\n  };\n\n  const state = {\n    currentTrack: '',\n    currentVideoId: '',\n    pollTimer: null,\n    tickerTimer: null,\n    ytPlayer: null,\n    ytReady: false,\n    pendingVideoId: ''\n  };\n\n  window.onYouTubeIframeAPIReady = function() {\n    state.ytReady = true;\n    if (state.pendingVideoId) {\n      ensureYoutubePlayer(state.pendingVideoId);\n      state.pendingVideoId = '';\n    }\n  };\n\n  function preloadImage(url) {\n    return new Promise((resolve, reject) => {\n      const img = new Image();\n      img.onload = () => resolve(url);\n      img.onerror = reject;\n      img.src = url;\n    });\n  }\n\n  async function setArtwork(url) {\n    const safe = url || FALLBACK_ART;\n    const current = el.art.getAttribute('src') || '';\n\n    if (current && current !== safe) {\n      el.art.classList.add('is-switching');\n      await new Promise(resolve => setTimeout(resolve, 220));\n    }\n\n    el.art.src = safe;\n    el.bg.style.backgroundImage = `url('${safe.replace(\/'\/g, \"%27\")}')`;\n\n    requestAnimationFrame(() => {\n      el.art.classList.remove('is-switching');\n    });\n  }\n\n  function parseTrack(text) {\n    const value = (text || '').trim();\n    if (!value) return { artist: 'Artista desconhecido', title: 'Sem t\u00edtulo' };\n\n    const parts = value.split(' - ');\n    if (parts.length >= 2) {\n      return {\n        artist: parts[0].trim(),\n        title: parts.slice(1).join(' - ').trim()\n      };\n    }\n\n    return {\n      artist: value,\n      title: ''\n    };\n  }\n\n  function showTicker() {\n    el.ticker.classList.add('show');\n    clearTimeout(state.tickerTimer);\n    state.tickerTimer = setTimeout(() => {\n      el.ticker.classList.remove('show');\n    }, TICKER_MS);\n  }\n\n  async function fetchAppleArtwork(track) {\n    const parsed = parseTrack(track);\n    const term = encodeURIComponent(`${parsed.artist} ${parsed.title}`.trim());\n    const url = `https:\/\/itunes.apple.com\/search?term=${term}&entity=song&limit=1`;\n\n    const res = await fetch(url, { cache: 'no-store' });\n    if (!res.ok) throw new Error(`Apple artwork HTTP ${res.status}`);\n\n    const data = await res.json();\n    const item = data?.results?.[0];\n    if (!item?.artworkUrl100) return '';\n\n    return item.artworkUrl100.replace(\/100x100bb\/g, '600x600bb');\n  }\n\n  async function fetchYoutubeResolve(track) {\n    const url = `${RESOLVE_URL}?track=${encodeURIComponent(track)}`;\n    const res = await fetch(url, { cache: 'no-store' });\n    if (!res.ok) throw new Error(`Resolve HTTP ${res.status}`);\n    return await res.json();\n  }\n\n  async function fetchNowPlaying() {\n    const res = await fetch(NOW_PLAYING_URL, { cache: 'no-store' });\n    if (!res.ok) throw new Error(`Now Playing HTTP ${res.status}`);\n    return await res.json();\n  }\n\n  function switchToArt() {\n    el.videoLayer.classList.remove('is-active');\n    el.videoLayer.classList.add('is-hidden');\n    el.artLayer.classList.add('is-active');\n    el.artLayer.classList.remove('is-hidden');\n\n    if (state.ytPlayer && typeof state.ytPlayer.pauseVideo === 'function') {\n      try { state.ytPlayer.pauseVideo(); } catch (e) {}\n    }\n  }\n\n  function ensureYoutubePlayer(videoId) {\n    if (!state.ytReady) {\n      state.pendingVideoId = videoId;\n      return;\n    }\n\n    if (!state.ytPlayer) {\n      state.ytPlayer = new YT.Player('rvVideoFrame', {\n        videoId: videoId,\n        playerVars: {\n          autoplay: 1,\n          controls: 1,\n          modestbranding: 1,\n          rel: 0,\n          playsinline: 1,\n          mute: 1\n        },\n        events: {\n          onReady: function(event) {\n            try {\n              event.target.mute();\n              event.target.playVideo();\n            } catch (e) {}\n          }\n        }\n      });\n      state.currentVideoId = videoId;\n      return;\n    }\n\n    if (state.currentVideoId !== videoId) {\n      try {\n        state.ytPlayer.loadVideoById(videoId);\n        state.ytPlayer.mute();\n      } catch (e) {}\n      state.currentVideoId = videoId;\n    } else {\n      try {\n        state.ytPlayer.mute();\n        state.ytPlayer.playVideo();\n      } catch (e) {}\n    }\n  }\n\n  function switchToVideo(videoId) {\n    ensureYoutubePlayer(videoId);\n\n    el.artLayer.classList.remove('is-active');\n    el.artLayer.classList.add('is-hidden');\n    el.videoLayer.classList.add('is-active');\n    el.videoLayer.classList.remove('is-hidden');\n  }\n\n  async function applyTrack(track, cover) {\n    const parsed = parseTrack(track);\n    el.artist.textContent = parsed.artist || 'ARTISTA';\n    el.title.textContent = parsed.title || 'M\u00daSICA';\n\n    let artwork = '';\n    let youtube = null;\n\n    try {\n      youtube = await fetchYoutubeResolve(track);\n    } catch (err) {\n      console.warn('Falha ao resolver YouTube\/cache:', err);\n    }\n\n    try {\n      artwork = await fetchAppleArtwork(track);\n    } catch (err) {\n      console.warn('Falha ao buscar capa Apple Music\/iTunes:', err);\n    }\n\n    const nextArtwork = artwork || youtube?.thumbnail_url || cover || FALLBACK_ART;\n\n    try {\n      await preloadImage(nextArtwork);\n    } catch (err) {}\n\n    await setArtwork(nextArtwork);\n\n    if (youtube?.found && youtube?.video_id) {\n      switchToVideo(youtube.video_id);\n      el.source.innerHTML = '<span class=\"rv-dot\"><\/span> Ao vivo \u00b7 v\u00eddeo pronto';\n    } else {\n      switchToArt();\n      el.source.innerHTML = '<span class=\"rv-dot\"><\/span> Ao vivo';\n    }\n\n    if (track && track !== state.currentTrack) {\n      state.currentTrack = track;\n      showTicker();\n    }\n  }\n\n  async function refresh() {\n    try {\n      const data = await fetchNowPlaying();\n      await applyTrack(data.musica_atual || '', data.capa_musica || '');\n    } catch (err) {\n      console.error('Falha ao ler metadata:', err);\n      el.source.innerHTML = '<span class=\"rv-dot\"><\/span> Sem metadata';\n      switchToArt();\n    }\n  }\n\n  function startAudio() {\n    el.audio.src = AUDIO_URL;\n    el.audio.volume = 1;\n\n    el.audio.play().catch(() => {\n      el.tap.classList.add('show');\n    });\n  }\n\n  el.player.addEventListener('click', () => {\n    if (el.audio.paused) {\n      el.audio.play().then(() => {\n        el.tap.classList.remove('show');\n      }).catch(() => {});\n    }\n  });\n\n  async function boot() {\n    await setArtwork(FALLBACK_ART);\n    switchToArt();\n    startAudio();\n    refresh();\n    state.pollTimer = setInterval(refresh, POLL_MS);\n  }\n\n  boot();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ao vivo ARTISTA T\u00cdTULO DA M\u00daSICA M\u00daSICA P\u00e1gina desenvolvida por GLTEC Clique para iniciar o \u00e1udio<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-130","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/glaudiotecnology.com.br\/index.php\/wp-json\/wp\/v2\/pages\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/glaudiotecnology.com.br\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/glaudiotecnology.com.br\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/glaudiotecnology.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/glaudiotecnology.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":46,"href":"https:\/\/glaudiotecnology.com.br\/index.php\/wp-json\/wp\/v2\/pages\/130\/revisions"}],"predecessor-version":[{"id":180,"href":"https:\/\/glaudiotecnology.com.br\/index.php\/wp-json\/wp\/v2\/pages\/130\/revisions\/180"}],"wp:attachment":[{"href":"https:\/\/glaudiotecnology.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}