{"id":25241,"date":"2021-06-02T17:29:00","date_gmt":"2021-06-02T14:29:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25241"},"modified":"2021-10-18T02:09:40","modified_gmt":"2021-10-17T23:09:40","slug":"comment-telecharger-une-video-sur-youtube-dans-l-application-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-telecharger-une-video-sur-youtube-dans-l-application-laravel\/","title":{"rendered":"Comment t\u00e9l\u00e9charger une vid\u00e9o sur YouTube dans l&rsquo;application Laravel"},"content":{"rendered":"<p>R\u00e9cemment, un de nos lecteurs a demand\u00e9 comment t\u00e9l\u00e9charger une vid\u00e9o sur YouTube \u00e0 partir de l&rsquo;application Laravel. Ils voulaient cr\u00e9er un syst\u00e8me capable de t\u00e9l\u00e9charger des vid\u00e9os YouTube \u00e0 partir de l&rsquo;application Laravel. Ce faisant, ils n&rsquo;ont pas besoin de donner acc\u00e8s \u00e0 leur compte YouTube aux membres de l&rsquo;\u00e9quipe qui g\u00e8rent les vid\u00e9os du compte YouTube.<\/p>\n<p>Dans le pass\u00e9, j&rsquo;ai \u00e9crit un article qui explique comment <a href=\"https:\/\/themewp.inform.click\/fr\/comment-utiliser-l-api-youtube-pour-telecharger-une-video-sur-la-chaine-youtube\/\" title=\"t\u00e9l\u00e9charger une vid\u00e9o sur YouTube \u00e0 l'aide de l'API YouTube en PHP\" >t\u00e9l\u00e9charger une vid\u00e9o sur YouTube \u00e0 l&rsquo;aide de l&rsquo;API YouTube en PHP<\/a>. Dans cet article, nous allons voir comment mettre en ligne une vid\u00e9o sur YouTube depuis l&rsquo;application Laravel.<\/p>\n<h3>Enregistrez une application et obtenez des informations d&rsquo;identification<\/h3>\n<p>Pour commencer, vous devez avoir un compte Google. Sur le compte Google, vous devez enregistrer votre application et obtenir les cl\u00e9s API.<\/p>\n<p>Vous trouverez ci-dessous les \u00e9tapes pour enregistrer une application et r\u00e9cup\u00e9rer les cl\u00e9s API.<\/p>\n<ul>\n<li>Acc\u00e9dez \u00e0 la console d\u00e9veloppeur de Google <a href=\"https:\/\/console.developers.google.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/console.developers.google.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/console.developers.google.com<\/a>.<\/li>\n<li>Cr\u00e9er un nouveau projet. Vous pouvez \u00e9galement s\u00e9lectionner un projet existant.<\/li>\n<li>Tapez un nom de votre projet. Google Console cr\u00e9era un ID de projet unique pour vous.<\/li>\n<li>Lors de la cr\u00e9ation d&rsquo;un projet, il appara\u00eetra en haut de la barre lat\u00e9rale gauche.<\/li>\n<li>Cliquez sur Biblioth\u00e8que dans le menu de gauche. Vous verrez une liste d&rsquo;API Google. Activez l&rsquo;API de donn\u00e9es YouTube.<\/li>\n<li>Ensuite, dans le menu de gauche, cliquez sur les informations d&rsquo;identification. S\u00e9lectionnez Oauth Client id sous Cr\u00e9er des informations d&rsquo;identification. Choisissez le bouton radio pour l&rsquo;application Web.<\/li>\n<li>Donnez le Nom. Sous Origines JavaScript autoris\u00e9es, saisissez l&rsquo;URL de votre domaine. Dans les URI de redirection autoris\u00e9s, ajoutez le lien de l&rsquo;URL de redirection en tant que <a href=\"http:\/\/localhost:8000\/youtube\/callback\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/localhost:8000\/youtube\/callback<\/a>. Je passe mon URL locale ici. Vous devez ajuster cette URL avec votre domaine.<\/li>\n<li>Enfin, cliquez sur le bouton Cr\u00e9er. Vous obtiendrez un ID client et un secret client dans la fen\u00eatre contextuelle. Copiez ces d\u00e9tails. Nous en aurons besoin bient\u00f4t.<\/li>\n<\/ul>\n<h3>Installer et configurer la biblioth\u00e8que GitHub<\/h3>\n<p>Une fois que vous avez cr\u00e9\u00e9 l&rsquo;application, la prochaine chose \u00e0 faire est d&rsquo;installer la biblioth\u00e8que <a href=\"https:\/\/github.com\/JoeDawson\/youtube\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">joedawson\/youtube<\/a>. Pour l&rsquo;installation de cette biblioth\u00e8que, ouvrez le terminal dans le r\u00e9pertoire racine de votre projet et ex\u00e9cutez la commande\u00a0:<\/p>\n<pre><code>composer require dawson\/youtube<\/code><\/pre>\n<p>Apr\u00e8s avoir install\u00e9 la biblioth\u00e8que, vous devez enregistrer le fournisseur de services et les alias dans le <code>config\/app.php<\/code>fichier.<\/p>\n<p><strong>config\/app.php<\/strong><\/p>\n<pre><code>....\n'providers' =&gt; [\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0DawsonYoutubeYoutubeServiceProvider::class,\n],\n....\n'aliases' =&gt; [\n\u00a0\u00a0\u00a0\u00a0...\n\u00a0\u00a0\u00a0\u00a0'Youtube' =&gt; DawsonYoutubeFacadesYoutube::class,\n],<\/code><\/pre>\n<p>Ensuite, publiez les <code>youtube.php<\/code>migrations et \u00e0 l&rsquo;aide de la commande ci-dessous\u00a0:<\/p>\n<pre><code>php artisan vendor:publish --provider=\"DawsonYoutubeYoutubeServiceProvider\"<\/code><\/pre>\n<p>La commande ci-dessus d\u00e9place le fichier <code>youtube.php<\/code>sous le dossier \u00ab\u00a0config\u00a0\u00bb et le fichier de migration sous le dossier \u00ab\u00a0base de donn\u00e9es\/migrations\u00a0\u00bb. Maintenant, vous devez ex\u00e9cuter la commande de migration qui cr\u00e9era une <code>youtube_access_tokens<\/code>table dans la base de donn\u00e9es.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Cette table stockerait le jeton d&rsquo;acc\u00e8s et le jeton d&rsquo;actualisation apr\u00e8s avoir autoris\u00e9 le compte YouTube. Le access_token est n\u00e9cessaire lorsque vous interagissez avec l&rsquo;API YouTube. Le jeton d&rsquo;acc\u00e8s sert d&rsquo;identifiant pour votre compte YouTube. Le jeton d&rsquo;acc\u00e8s a une courte dur\u00e9e de vie, donc pour obtenir le nouveau jeton d&rsquo;acc\u00e8s, cette biblioth\u00e8que utilise un jeton d&rsquo;actualisation. Vous n&rsquo;avez pas \u00e0 vous soucier de l&rsquo;insertion de ces jetons dans une table. La biblioth\u00e8que le fera en arri\u00e8re-plan.<\/p>\n<p>Nous avons copi\u00e9 les informations d&rsquo;identification de l&rsquo;API qui doivent \u00eatre plac\u00e9es dans l&rsquo;application Laravel. Ouvrez le <code>.env<\/code>fichier et ajoutez votre identifiant client et votre secret client comme suit\u00a0:<\/p>\n<pre><code>GOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=<\/code><\/pre>\n<p>Si vous apportez des modifications au fichier d&rsquo;environnement, vous devez effacer la configuration \u00e0 l&rsquo;aide de la commande\u00a0:<\/p>\n<pre><code>php artisan config:clear<\/code><\/pre>\n<h4>Autorisation du compte Google<\/h4>\n<p>Pour des raisons de s\u00e9curit\u00e9, les routes pour autoriser le compte YouTube avec votre application Laravel sont d\u00e9sactiv\u00e9es par d\u00e9faut. Vous devrez l&rsquo;activer \u00e0 partir de votre <code>config\/youtube.php<\/code>. Ouvrez le <code>config\/youtube.php<\/code>et activez-le en rempla\u00e7ant simplement la valeur false par true.<\/p>\n<pre><code>...\n'enabled' =&gt; true, \/\/set it to 'false' after authorization<\/code><\/pre>\n<p>Vous pouvez maintenant autoriser votre compte en utilisant l&rsquo;URL YOUR_DOMAIN_URL\/youtube\/auth dans le navigateur. Il redirigera vers la page de connexion Google pour authentifier votre compte. Terminez le processus. Une fois l&rsquo;authentification r\u00e9ussie, vous serez redirig\u00e9 vers votre application Laravel. V\u00e9rifiez le <code>youtube_access_tokens<\/code>tableau et vous devriez voir des jetons ins\u00e9r\u00e9s dans la colonne &lsquo;access_token&rsquo;. Il s&rsquo;agit d&rsquo;un processus unique. La biblioth\u00e8que g\u00e9n\u00e9rera automatiquement access_token en arri\u00e8re-plan m\u00eame s&rsquo;il a expir\u00e9. L&rsquo;utilisateur n&rsquo;a pas besoin d&rsquo;autoriser \u00e0 nouveau son compte.<\/p>\n<h3>T\u00e9l\u00e9charger une vid\u00e9o sur un compte YouTube dans l&rsquo;application Laravel<\/h3>\n<p>\u00c0 ce stade, vous \u00eates pr\u00eat avec le jeton d&rsquo;acc\u00e8s. Cr\u00e9ez maintenant un formulaire pour parcourir le fichier vid\u00e9o et envoyez-le \u00e0 YouTube. Cr\u00e9ons un contr\u00f4leur en ex\u00e9cutant la commande ci-dessous.<\/p>\n<pre><code>php artisan make:controller VideoController --resource<\/code><\/pre>\n<p>D\u00e9finissez les itin\u00e9raires pour <code>VideoController<\/code>comme suit.<\/p>\n<p><strong>itin\u00e9raires\/web.php<\/strong><\/p>\n<pre><code>&lt;?php\n...\nRoute::resource('video', 'VideoController');<\/code><\/pre>\n<p>Cr\u00e9ez une vue <code>resources\/views\/video.blade.php<\/code>et ajoutez-y le code ci-dessous.<\/p>\n<pre><code>&lt;form action=\"{{ url('video') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"text\" name=\"title\" placeholder=\"Enter Video Title\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;textarea name=\"description\" cols=\"30\" rows=\"10\" placeholder=\"Video description\"&gt;&lt;\/textarea&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"file\" name=\"video\" \/&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-default\"&gt;Submit&lt;\/button&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n&lt;\/form&gt;<\/code><\/pre>\n<p>Appelez ce fichier de vue \u00e0 partir de la <code>index<\/code>m\u00e9thode de notre contr\u00f4leur.<\/p>\n<pre><code>public function index()\n{\n\u00a0\u00a0\u00a0\u00a0return view('video');\n}<\/code><\/pre>\n<p>D\u00e9sormais, lorsque vous visitez YOUR_DOMAIN_URL\/video, vous verrez un formulaire contenant la saisie du fichier, le titre, la description et le bouton d&rsquo;envoi.<\/p>\n<p>Pour appeler l&rsquo;API YouTube, ajoutez une classe YouTube dans un contr\u00f4leur. Et dans la <code>store<\/code>m\u00e9thode, \u00e9crivez le code pour t\u00e9l\u00e9charger une vid\u00e9o sur YouTube comme suit.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse Youtube;\n\u00a0\nclass VideoController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0....\n\u00a0\u00a0\u00a0\u00a0public function store(Request $request)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$video = Youtube::upload($request-&gt;file('video')-&gt;getPathName(), [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'title'\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; $request-&gt;input('title'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'description' =&gt; $request-&gt;input('description')\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return \"Video uploaded successfully. Video ID is \". $video-&gt;getVideoId();\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Ici, nous passons un fichier vid\u00e9o, un titre et une description \u00e0 partir de notre formulaire. Ce code t\u00e9l\u00e9charge simplement votre vid\u00e9o sur YouTube et imprime l&rsquo;identifiant de la vid\u00e9o YouTube.<\/p>\n<p>J&rsquo;esp\u00e8re que vous comprenez le t\u00e9l\u00e9chargement d&rsquo;une vid\u00e9o sur YouTube dans l&rsquo;application Laravel. L&rsquo;utilisateur peut \u00e9galement mettre \u00e0 jour et supprimer les vid\u00e9os en utilisant le code fourni par la biblioth\u00e8que. Vous pouvez en savoir plus \u00e0 ce sujet sur leur <a href=\"https:\/\/github.com\/joedawson\/youtube\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentation<\/a>.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/integration-de-paypal-payments-pro-dans-laravel\/\" title=\"Int\u00e9gration de PayPal Payments Pro dans Laravel\">Int\u00e9gration de PayPal Payments Pro dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-creer-un-blog-avec-laravel\/\" title=\"Comment cr\u00e9er un blog avec Laravel\">Comment cr\u00e9er un blog avec Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-telecharger-et-recadrer-une-image-dans-laravel-a-l-aide-d-imgareaselect-et-de-la-bibliotheque-d-images-d-intervention\/\" title=\"Comment t\u00e9l\u00e9charger et recadrer des images dans Laravel\">Comment t\u00e9l\u00e9charger et recadrer des images dans Laravel<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voulez-vous t\u00e9l\u00e9charger une vid\u00e9o sur YouTube depuis votre application Laravel\u00a0? Dans cet article, je vous montre comment t\u00e9l\u00e9charger une vid\u00e9o sur YouTube depuis Laravel<\/p>\n","protected":false},"author":1,"featured_media":20375,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[497],"tags":[844],"class_list":["post-25241","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=25241"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/25241\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20375"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=25241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=25241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=25241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}