Skip to content

Cloudflare Worker yang menyediakan OG Image & Video dinamis berdasarkan waktu lokal pengguna, dengan dukungan redirect langsung dan metadata Open Graph.

Notifications You must be signed in to change notification settings

fatonyahmadfauzi/dynamic-og-media

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamic OG Metadata & Media Worker

Cloudflare Worker yang menyediakan OG Image & Video dinamis berdasarkan waktu lokal pengguna, dengan dukungan redirect langsung dan metadata Open Graph.

Struktur Proyek

dynamic-og-media/
├── src/
│ └── worker.js # Kode utama Worker
├── wrangler.toml # Konfigurasi Cloudflare Worker
├── package.json # Dependensi dan skrip
└── README.md

Deployment

  1. Clone repositori

    git clone https://github.com/yourusername/dynamic-og-media.git
    cd dynamic-og-media
  2. Install dependencies

    npm install
  3. Konfigurasi Wrangler Buat file wrangler.toml dengan isi:

     name = "your-worker-name"
     main = "src/worker.js"
     compatibility_date = "2024-03-15"
    
     [build.upload]
     format = "service-worker"
  4. Development Mode

    npm run dev

    Akses di http://localhost:8787

  5. Deploy ke Cloudflare

    npm run deploy

Cara Penggunaan

  1. Sebagai Meta Tags Langsung

    <!-- Di dalam <head> -->
    <meta property="og:video" content="https://your-worker.domain/video" />
    <meta property="og:video:type" content="video/mp4" />
    <meta property="og:video:width" content="1280" />
    <meta property="og:video:height" content="720" />
    ```
  2. Sebagai Endpoint API

    # Dapatkan metadata lengkap
    GET https://your-worker.domain/
    
    # Response contoh:
    
    {
     "og:image": "url_gambar",
     "og:video": "url_video",
     ...
    }
  3. Redirect Langsung

     # Akses video langsung
     curl -L https://your-worker.domain/video
    
     # Akses gambar langsung
     curl -L https://your-worker.domain/image

Konfigurasi

Ubah parameter di `src/worker.js`:

```js
// Sesuaikan URL media
const ASSETS = {
day: {
    image: "url_gambar_siang",
    video: "url_video_siang",
},
night: {
    image: "url_gambar_malam",
    video: "url_video_malam",
},
};

// Atur jam siang/malam
const DAY_HOURS = [6, 17]; // 06:00 - 17:59
```

Integrasi dengan Situs Web

  1. Tambahkan meta tags di HTML

  2. Untuk CMS (WordPress/Next.js), buat komponen khusus:

    // Contoh React Component
    const DynamicMeta = () => (
      <>
        <meta property="og:video" content={workerURL + "/video"} />
        <meta property="og:image" content={workerURL + "/image"} />
      </>
    );

Catatan Penting

  1. Cache Control: Worker menggunakan header no-store untuk memastikan konten selalu fresh

  2. Validasi OG Tags: Gunakan tool berikut untuk test:

  3. Monitoring: Pantau log Worker melalui Cloudflare Dashboard untuk melihat traffic

  4. Fallback Content: Pastikan URL media alternatif tetap dapat diakses jika Worker down

About

Cloudflare Worker yang menyediakan OG Image & Video dinamis berdasarkan waktu lokal pengguna, dengan dukungan redirect langsung dan metadata Open Graph.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •