apeescape2.com
  • メイン
  • アジャイル
  • 仕事の未来
  • モバイルデザイン
  • ブランドデザイン
バックエンド

YouTube API統合:Djangoを使用した動画のアップロード

少し前、私はクライアントのために働いていて、彼らのウェブサイトにビデオレビューを統合していました。やる気のある開発者が新しい問題を解決するのと同じように、私が最初にしたことはGoogleでした。まったく異なる、または時代遅れで保守されていないPythonパッケージを実現する方法について、役に立たない、または誤った答えがたくさん見つかりました。最終的に、私は弾丸とチームを噛み、すべてをゼロから構築しました。ビューを作成し、GoogleのAPIについて学び、APIクライアントを作成し、最終的にDjangoからプログラムで動画をアップロードすることに成功しました。

この投稿では、DjangoアプリからYouTube動画を投稿する方法を段階的に説明します。これには、Google API認証情報を少し試す必要があります。最初にウェブインターフェースを使用し、次にコードを使用します。 YouTubeの部分自体は非常に簡単です。 Googleのものがどのように機能するかを理解する必要があります。これは、トリッキーで情報がさまざまな場所に分散している場合があるためです。

前提条件



作業を開始する前に、次のことをよく理解しておくことをお勧めします。

  • YouTubeデータAPI:Pythonクイックスタート
  • YouTubeデータAPI:APIリファレンス
  • YouTubeデータAPI:コードサンプル
  • Google PythonAPIクライアントライブラリ
  • Google Python APIクライアントライブラリ:リファレンスドキュメント
  • Google Python APIクライアントライブラリ:コードサンプル
  • YouTube API:Pythonコードサンプル

注意すべき興味深いコードは、次のPythonスニペットです。 Google YouTubeAPIドキュメント :

# Sample python code for videos.insert def videos_insert(client, properties, media_file, **kwargs): resource = build_resource(properties) # See full sample for function kwargs = remove_empty_kwargs(**kwargs) # See full sample for function request = client.videos().insert( body=resource, media_body=MediaFileUpload(media_file, chunksize=-1, resumable=True), **kwargs ) # See full sample for function return resumable_upload(request, 'video', 'insert') media_file = 'sample_video.flv' if not os.path.exists(media_file): exit('Please specify a valid file location.') videos_insert(client, {'snippet.categoryId': '22', 'snippet.defaultLanguage': '', 'snippet.description': 'Description of uploaded video.', 'snippet.tags[]': '', 'snippet.title': 'Test video upload', 'status.embeddable': '', 'status.license': '', 'status.privacyStatus': 'private', 'status.publicStatsViewable': ''}, media_file, part='snippet,status')

入門

前提条件を読んだら、始めましょう。必要なものを見てみましょう。

ツールベルト

基本的に、仮想環境を作成しましょう。私は個人的に好きです pyenv 。両方の設定はこの投稿の範囲外なので、以下にいくつかのpyenvコマンドを投稿します。好みがvirtualenvの場合は、それに応じてコマンドを自由に置き換えてください。

この投稿では、Python3.7とDjango2.1を使用します。

➜ ~/projects $ mkdir django-youtube ➜ ~/projects $ cd django-youtube ➜ ~/projects/django-youtube $ pyenv virtualenv 3.7.0 djangoyt ➜ ~/projects/django-youtube $ vim .python-version

これをコンテンツに入れましょう(pyenvを使用している場合は、フォルダーに入ると自動的にアクティブになります)。

djangoyt

依存関係のインストール:

回避するオープンソースライセンス
➜ ~/projects/django-youtube $ pip install google-api-python-client google-auth google-auth-oauthlib google-auth-httplib2 oauth2client Django unipath jsonpickle

では、djangoプロジェクトを開始しましょう。

➜ ~/projects/django-youtube $ django-admin startproject django_youtube .

一部のGoogle構成を一時停止します

Google APIを使用できるように、プロジェクトの認証情報を構成しましょう。

手順1.次のURLに移動します。

https://console.developers.google.com/apis/library/youtube.googleapis.com

ステップ2.新しいプロジェクトを作成します。

新しいプロジェクトを作成する

手順3. [APIとサービスを有効にする]をクリックします。

APIとサービスを有効にします。

手順4.YouTube Data API v3を探し、[有効にする]をクリックします。

YouTube Data API v3を探し、[

ステップ5.資格情報に関するメッセージが表示されます。

資格情報に関するメッセージ

ステップ6.右側の[資格情報の作成]青いボタンをクリックすると、次の画面が表示されます。

クリックしてください

c-corporationとは

ステップ7.Webサーバー、ユーザーデータを選択します。

Webサーバー、ユーザーデータを選択します

手順8.承認されたJSオリジンとリダイレクトURIを追加します。最後まで続けます:

承認されたJSオリジンとリダイレクトURIを追加します。

OK、認証情報の設定は完了です。資格情報をJSON形式でダウンロードするか、コピーすることができます クライアントID そして クライアントシークレット 。

Djangoに戻る

最初のDjangoアプリを始めましょう。私は通常それを「コア」と名付けます:

(djangoyt) ➜ ~/projects/django-youtube $ python manage.py startapp core

次に、ルートurls.pyファイルに以下を追加して、ホームページリクエストをコアアプリにルーティングします。

# /urls.py from django.urls import path, include path('', include(('core.urls', 'core'), namespace='core')),

コアアプリで、別のurls.pyファイルを作成し、いくつかの構成も行います。

# core/urls.py from django.conf import settings from django.conf.urls.static import static from django.urls import path from .views import HomePageView urlpatterns = [ path('', HomePageView.as_view(), name='home') ] if settings.DEBUG: urlpatterns += static( settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static( settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

HomePageViewを指す空のパスがあることを確認してください。コードを追加します。

簡単なTemplateViewをしましょうそれが実行されているのを見るだけです。

# core/views.py from django.shortcuts import render from django.views.generic import TemplateView class HomePageView(TemplateView): template_name = 'core/home.html'

そしてもちろん、基本的なテンプレートが必要です。

# core/templates/core/home.html

Here is the form:

モノのスマートホームインターネット
{% csrf_token %} {{ form.as_p }}

YouTubeFormにビデオフィールドを追加することを忘れないでください:

class YouTubeForm(forms.Form): video = forms.FileField()

さあ!

フォームをアップロード

次に、YouTubeアカウントのスタジオページで確認します(チャンネルを用意することが重要です)。

アップロードされたビデオ

ここは!

クロージングノート

コードには多少の改善が必要ですが、それは良い出発点です。それがGoogleのほとんどに役立つことを願っています YouTube API 統合の問題。注意すべき重要な点がいくつかあります。

  • 承認するには、アプリケーションが動画をアップロードすることを承認するユーザーにログインと追加の権限を要求することが重要です。
  • フロー変数は、グローバルから移動する必要があります。本番環境では安全ではありません。たとえば、最初のビューにアクセスしたユーザーIDまたはセッションに基づいてキャッシュすることをお勧めします。
  • Googleは、最初の認証を行ったときにのみ更新トークンを提供します。そのため、しばらくすると、ほとんど1時間でトークンの有効期限が切れ、APIを操作しなかった場合は、invalid_grantを受信し始めます。反応。すでにクライアントを承認した同じユーザーを再承認しても、更新トークンは保証されません。 Googleアカウントページでアプリケーションを取り消してから、承認プロセスを再度実行する必要があります。場合によっては、トークンを更新し続けるためにタスクを実行する必要があります。
  • リクエストに直接関連するユーザー資格情報を使用しているため、ビューでログインを要求する必要があります。

FlowExchangeエラー

アップロードには時間がかかり、メインのアプリケーションプロセスでアップロードを行うと、アップロード中にアプリケーション全体がブロックされる可能性があります。正しい方法は、それを独自のプロセスに移動し、非同期でアップロードを処理することです。

混乱していますか?しないでください、続きを読む Python用Celeryでのバックグラウンドジョブワークフローの調整 。

基本を理解する

Djangoとは何ですか?なぜそれが使用されるのですか?

公式ウェブサイトから:「Djangoは、迅速な開発とクリーンで実用的なデザインを促進する高レベルのPythonWebフレームワークです」。これは最大のPythonWebフレームワークであり、テンプレート作成、データベース処理、セキュリティなど、高速なWeb開発のためのツールを提供するため広く使用されています。

Djangoは良いフレームワークですか?

間違いなく。これは最も人気があり、トップフレームワークの1つです。 Djangoは、一般的なWebタスクのほとんどを処理するため、アプリケーションに集中できます。 Webプロジェクトを開始するときにPython開発者に3つの選択肢を与えると、Djangoは確かに1つになります。

YouTube Data APIとは何ですか?

これは、特定のサイトにあらゆる種類のYouTube機能を含めるためにGoogleが提供するAPIです。これには、動画のアップロード、再生リストとサブスクリプションの管理、チャンネル設定の処理、検索などが含まれます。

YouTube APIキーを取得するにはどうすればよいですか?

最初のステップはここ(https://developers.google.com/youtube/v3/)に移動することですが、それによってGoogle Developers Console(https://console.developers.google.com/)に移動します。 。そこで、YoutubeAPIを検索して追加できます。

SpringBootグローバル例外ハンドラ

Google APIは無料ですか?

無料のGoogleAPIもあれば、そうでないものもあります。たとえば、Youtube DataAPIは無料です。

どのバージョンのPythonとDjangoが必要ですか?

この投稿に厳密に従うには、Python3.7とDjango2.1が必要ですが、これはPython 2.7、3.4、3.5、3.6、Django 1.1、2.0でも機能するはずです。

YouTube側でセットアップは必要ですか?

YouTubeアカウントと少なくとも1つのチャンネルが必要です。

製品コンテンツストラテジスト

その他

製品コンテンツストラテジスト
Pixelに最適なiOSUIデザインを実装する方法

Pixelに最適なiOSUIデザインを実装する方法

モバイル

人気の投稿
同じマシンでのMySQLマスタースレーブレプリケーション
同じマシンでのMySQLマスタースレーブレプリケーション
TypeScript、依存性注入、Discordボットの操作
TypeScript、依存性注入、Discordボットの操作
3つの医療技術革新:より良い結果とより低いコストの推進
3つの医療技術革新:より良い結果とより低いコストの推進
Calabashを使用したAndroidおよびiOSUIテスト
Calabashを使用したAndroidおよびiOSUIテスト
Node.js / TypeScript REST APIの構築、パート2:モデル、ミドルウェア、およびサービス
Node.js / TypeScript REST APIの構築、パート2:モデル、ミドルウェア、およびサービス
 
最高のデータ視覚化ツールの完全な概要
最高のデータ視覚化ツールの完全な概要
機械学習理論とその応用の紹介:例を含むビジュアルチュートリアル
機械学習理論とその応用の紹介:例を含むビジュアルチュートリアル
AngularJS開発者が犯す最も一般的な18の間違い
AngularJS開発者が犯す最も一般的な18の間違い
GoogleスプレッドシートとAppsScriptの操作
GoogleスプレッドシートとAppsScriptの操作
自然言語処理アプリを構築する方法
自然言語処理アプリを構築する方法
人気の投稿
  • 次の例のどれがニッチ戦略を示していますか?
  • レール上のルビーvsルビー
  • ブートストラップは何に使用されますか
  • ページオブジェクトモデルseleniumjavaの例
  • 外国為替リスクとは
  • ノードjsでAPIをビルドする
  • acとscorpの違い
カテゴリー
設計プロセス Uxデザイン 革新 トレンド 投資家と資金調達 その他 バックエンド データサイエンスとデータベース リモートの台頭 アジャイルタレント

© 2021 | 全著作権所有

apeescape2.com