September 28, 2015

YouTubeUtilities Class to work with Google YouTube API

public class YouTubeUtilities
{
    private String CLIENT_ID { get; set; }
    private String CLIENT_SECRET { get; set; }
    private String REFRESH_TOKEN { get; set; }

    private readonly RestClient _client;

    private String UploadedVideoId { get; set; }

    private YouTubeService youtube;
    private YouTubeAnalyticsService youtubeanalyticsservice;

    public YouTubeUtilities(string client_id, string client_secret, string refresh_token)
    {
        CLIENT_ID = client_id;
        CLIENT_SECRET = client_secret;
        REFRESH_TOKEN = refresh_token;

        _client = new RestClient("https://www.googleapis.com/");

        youtube = BuildService();
        youtubeanalyticsservice = BuildAnalyticsService();
    }

    private YouTubeAnalyticsService BuildAnalyticsService()
    {
        ClientSecrets secrets = new ClientSecrets()
        {
            ClientId = CLIENT_ID,
            ClientSecret = CLIENT_SECRET
        };

        var token = new TokenResponse { RefreshToken = REFRESH_TOKEN };
        var credentials = new UserCredential(new GoogleAuthorizationCodeFlow(
            new GoogleAuthorizationCodeFlow.Initializer
            {
                ClientSecrets = secrets
            }),
            EDSitecoreUtilities.GetDictionaryItem(EDConstants.USER_ID),
            token);

        var service = new YouTubeAnalyticsService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credentials,
            ApplicationName = "PROJECTNAME"
        });

        return service;
    }

    private YouTubeService BuildService()
    {
        ClientSecrets secrets = new ClientSecrets()
        {
            ClientId = CLIENT_ID,
            ClientSecret = CLIENT_SECRET
        };

        var token = new TokenResponse { RefreshToken = REFRESH_TOKEN };
        var credentials = new UserCredential(new GoogleAuthorizationCodeFlow(
            new GoogleAuthorizationCodeFlow.Initializer
            {
                ClientSecrets = secrets
            }),
            "USERNAME",
            token);

        var service = new YouTubeService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credentials,
            ApplicationName = "PROJECTNAME"
        });

        return service;
    }
}

No comments:

Post a Comment