gogoanime

package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
    "encoding/json"
)

const baseURL = "https://api.gogoanime.so/api/v1"

type AnimeDetails struct {
    Title       string `json:"title"`
    Description string `json:"description"`
    Episodes    []Episode `json:"episodes"`
}

type Episode struct {
    EpisodeNumber int `json:"episode_number"`
    Title         string `json:"title"`
    VideoURL      string `json:"video_url"`
}

func getAnimeDetails(animeID string) (*AnimeDetails, error) {
    url := fmt.Sprintf("%s/anime/%s", baseURL, animeID)
    response, err := http.Get(url)
    if err != nil {
        return nil, err
    }
    defer response.Body.Close()

    body, err := ioutil.ReadAll(response.Body)
    if err != nil {
        return nil, err
    }

    var animeDetails AnimeDetails
    err = json.Unmarshal(body, &animeDetails)
    if err != nil {
        return nil, err
    }

    return &animeDetails, nil
}

func main() {
    animeID := "your_anime_id_here"
    animeDetails, err := getAnimeDetails(animeID)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    fmt.Printf("Title: %s\n", animeDetails.Title)
    fmt.Printf("Description: %s\n", animeDetails.Description)

    fmt.Println("Episodes:")
    for _, episode := range animeDetails.Episodes {
        fmt.Printf("  Episode %d: %s\n", episode.EpisodeNumber, episode.Title)
        fmt.Printf("    Video URL: %s\n", episode.VideoURL)
    }
}