hola, mira tengo esto:

// Interfaz para las canciones
export interface Song {
  title: string;
  artist: string;
  album: string;
  added: string;
  duration?: number;
  youtubeId?: string;
}

// Lista de canciones con youtubeId
export const songs: Song[] = [
  {
    title: "Las Piponas (Remix)",
    artist: "Kris R., Blessed",
    album: "Las Piponas (Remix)",
    added: "hace 2 horas",
    duration: 242,
    youtubeId: "Dftj21lTUIA",
  },
  {
    title: "La Nueva Gerencia",
    artist: "Arcángel, Farruko",
    album: "La Nueva Gerencia",
    added: "hace 1 día",
    duration: 277,
    youtubeId: "ehYg8s7xHbs",
  },
  {
    title: "Secretos",
    artist: "C.R.O, Kidd Keo",
    album: "Secretos",
    added: "hace 3 días",
    duration: 161,
    youtubeId: "GL7Xs9neldo",
  },
  {
    title: "Lo Siento",
    artist: "Saigo",
    album: "Lo Siento",
    added: "hace una semana",
    duration: 193,
    youtubeId: "kLukLxV2J8M",
  },
  {
    title: "Hoy",
    artist: "Valentino Merlo, The La Planta",
    album: "Hoy",
    added: "hace 1 día",
    duration: 196,
    youtubeId: "zdlNvjJIOMQ",
  },
  {
    title: "Falling",
    artist: "J Abdiel",
    album: "Falling",
    added: "hace 1 día",
    duration: 131,
    youtubeId: "apJaeQJtjvg",
  },
  {
    title: "x las nubes",
    artist: "paopao",
    album: "x las nubes",
    added: "hace 1 día",
    duration: 170,
    youtubeId: "Nv11RNe2AcQ",
  },
  {
    title: "AMIGA CON BENEFICIOS",
    artist: "LOS DUROS SON ELLOS, Lunay, Nicky Jam",
    album: "AMIGA CON BENEFICIOS",
    added: "hace 1 día",
    duration: 193,
    youtubeId: "ddQuAvDD9XA",
  },
  {
    title: "JEVA NUEVA",
    artist: "Jon Z, Myke Towers",
    album: "JEVA NUEVA",
    added: "hace 1 día",
    duration: 200,
    youtubeId: "fda27oFBPJA",
  },
  {
    title: "Chorri",
    artist: "Jhay P",
    album: "QUE NO SE ASUSTEN",
    added: "hace 1 día",
    duration: 210,
    youtubeId: "__BKKsLaibg",
  },
  // Puedes agregar más canciones aquí
];


necesito que la parte en donde estoy colocando la duracion de la cancion, como puedes ver estoy colocando los segundos manualmente, pero no lo quiero ahcer asi, necesito que por medio de la api de youtube asi con el id del video, ya la duracion se setee automaticamente, me hago entender?

por ejemplo aqui yo hago algo parecido con lo del tiempo de reproduccion:

// NowPlayingBar.tsx
import React from "react";
import { Pause, Play, ChevronDown } from "lucide-react";
import { Button } from "./components/ui/button";

interface Song {
  title: string;
  artist: string;
  youtubeId?: string;
}

interface NowPlayingBarProps {
  currentSong: Song;
  isPlaying: boolean;
  onPlayPause: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
  onToggleFullScreen: () => void;
}

const getYouTubeThumbnail = (youtubeId: string): string =>
  `https://img.youtube.com/vi/${youtubeId}/hqdefault.jpg`;

const NowPlayingBar: React.FC<NowPlayingBarProps> = ({
  currentSong,
  isPlaying,
  onPlayPause,
  onToggleFullScreen,
}) => {
  return (
    <div
      className="bg-gray-900 p-2 fixed bottom-0 left-0 right-0 z-50 cursor-pointer"
      onClick={onToggleFullScreen}
    >
      <div className="flex items-center justify-between">
        <div className="flex items-center space-x-2 flex-grow">
          <img
            src={
              currentSong.youtubeId
                ? getYouTubeThumbnail(currentSong.youtubeId)
                : "/placeholder.svg"
            }
            alt="Now playing cover"
            className="w-12 h-12 rounded"
          />
          <div>
            <p className="font-medium">{currentSong.title}</p>
            <p className="text-sm text-gray-400">{currentSong.artist}</p>
          </div>
        </div>
        <div className="flex items-center space-x-4">
          <Button
            variant="ghost"
            size="icon"
            className="text-white"
            onClick={(e) => {
              e.stopPropagation(); // Evitar que el click se propague al div padre
              onPlayPause(e);
            }}
            aria-label={isPlaying ? "Pausar" : "Reproducir"}
          >
            {isPlaying ? (
              <Pause className="h-6 w-6" fill="currentColor" />
            ) : (
              <Play className="h-6 w-6" fill="currentColor" />
            )}
          </Button>
        </div>
      </div>
    </div>
  );
};

export default NowPlayingBar;


pero entonces necesito que sea para el ts de la musica, puedes hacer algo al respecto?