Comment télécharger une vidéo sur YouTube avec C# (Partie 2)

Après la configuration de l’api Youtube sur la console google dev (voir Partie 1), Nous allons voir dans ce chapitre comment télécharger et supprimer une vidéo youtube avec le code C#.

Installation du Youtube Api  avec Nuget Package

Lancez Visual Studio, faites un clic droit sur les références de votre projet et choisissez (Manage Nuget Packages..).
Choisissez Google.Apis.YouTube.V3 dans les résultats de recherche et cliquez sur installer.

YoutubeApiV3

Ensuite créez vos classes qui utilisent  l’api. Je vous propose deux exemples de classes :

1) Télécharger une vidéo sur YouTube avec  C#

Pour télécharger une vidéo sur YouTube il faut d’abord créer un Token , après il faut appeler la méthode Insert  de l’api Youtube :

public void CreateVideo(string filePath)
        {
            try
            {
                var secrets = new ClientSecrets()
                {
                    ClientId = "YOUTUBE_CLIENTID",
                    ClientSecret = "YOUTUBE_CLIENT_SECRET"
                };
                var token = new TokenResponse { RefreshToken = "YOUTUBE_REFRESH_TOKEN" };
                var credentials = new UserCredential(new GoogleAuthorizationCodeFlow(
                    new GoogleAuthorizationCodeFlow.Initializer
                    {
                        ClientSecrets = secrets
                    }),
                    "user",
                    token);

                var youtubeService = new Google.Apis.YouTube.v3.YouTubeService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credentials,
                    GZipEnabled = true,
                    ApplicationName = this.GetType().ToString()
                });

                var video = new Google.Apis.YouTube.v3.Data.Video
                {
                    Snippet = new VideoSnippet
                    {
                        Title = "YoutubeProject",
                        Description = "Video",
                        Tags = new string[] { "tag1", "tag2" },
                        CategoryId = "22"
                    },
                    Status = new VideoStatus { PrivacyStatus = "unlisted" }
                };

                string videoId = null;
                using (var fileStream = new FileStream(filePath, FileMode.Open))
                {
                    var videosInsertRequest = youtubeService.Videos.Insert(video, "snippet,status", fileStream, "video/*");

                    videosInsertRequest.ResponseReceived += v =>
                    {
                        videoId = v.Id;
                    };

                    videosInsertRequest.Upload();
                }


            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message + ex.StackTrace);
            }
        }

Remplacez les variables YOUTUBE_CLIENTID, YOUTUBE_CLIENT_SECRET

et  YOUTUBE_REFRESH_TOKEN par leurs valeurs.

2) Supprimer une vidéo Youtube avec C#

Pour supprimer une vidéo Youtube, il faut appeler la méthode DeleteRequest  de l’api Youtube :

public void DeleteVideo(string urlVideo)
        {
            try
            {
                var secrets = new ClientSecrets()
                {
                    ClientId = "YOUTUBE_CLIENTID",
                    ClientSecret = "YOUTUBE_CLIENT_SECRET"
                };

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

                var youtubeService = new Google.Apis.YouTube.v3.YouTubeService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credentials,
                    GZipEnabled = true,
                    ApplicationName = this.GetType().ToString()
                });

                var searchListRequest = new VideosResource.ListRequest(youtubeService,
                    "id,snippet,contentDetails,fileDetails,processingDetails,recordingDetails,statistics,status,suggestions")
                {
                    Id = urlVideo
                };
                var objVideoListResponse = searchListRequest.Execute();

                if (objVideoListResponse.Items.Any())
                {
                    var result = new VideosResource.DeleteRequest(youtubeService, urlVideo);
                    var response = result.Execute();
                }

                
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message + ex.StackTrace);
            }
        }

 

Conclusion

L'API YouTube simplifie grandement la gestion des vidéos d'un site web. Il vous permet de faire toutes les actions via une simple authentification.

 

Enregistrer

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.