IYouTubeApiService.cs 1.4 KB

1234567891011121314151617181920212223242526
  1. namespace Application.Abstractions.YouTube;
  2. /// <summary>
  3. /// YouTube Data API v3 — 채널 정보, 구독/멤버십 확인
  4. /// </summary>
  5. public interface IYouTubeApiService
  6. {
  7. // ── 공개 정보 (API Key 사용) ──────────────────────────────────────
  8. /// <summary>채널 ID로 채널 정보 조회</summary>
  9. Task<YouTubeChannelInfo?> GetChannelByIdAsync(string channelId, CancellationToken ct);
  10. /// <summary>핸들(@username)로 채널 정보 조회</summary>
  11. Task<YouTubeChannelInfo?> GetChannelByHandleAsync(string handle, CancellationToken ct);
  12. /// <summary>videoId로 라이브 스트림 정보 조회 (liveBroadcastContent, activeLiveChatId)</summary>
  13. Task<YouTubeLiveStreamInfo?> GetLiveStreamInfoAsync(string videoId, CancellationToken ct);
  14. // ── 사용자별 (OAuth Access Token 필요) ────────────────────────────
  15. /// <summary>현재 사용자가 특정 채널을 구독 중인지 확인</summary>
  16. Task<bool> IsSubscribedAsync(string accessToken, string channelId, CancellationToken ct);
  17. /// <summary>현재 사용자의 특정 채널 멤버십 상태 확인</summary>
  18. Task<YouTubeMembershipStatus> CheckMembershipAsync(string accessToken, string channelId, CancellationToken ct);
  19. }