portaldacalheta.pt
  • Κύριος
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κερδοφορία & Αποδοτικότητα
  • Σχεδιασμός Ux
  • Κινητό
Πίσω Μέρος

Ενσωμάτωση API YouTube: Μεταφόρτωση βίντεο με το Django



Πριν από λίγο καιρό, δούλευα για έναν πελάτη, ενσωματώνοντας κριτικές βίντεο στον ιστότοπό του. Όπως κάθε προγραμματιστής που έδωσε κίνητρα για την επίλυση ενός νέου προβλήματος, το πρώτο πράγμα που έκανα ήταν το Google και βρήκα μια πληθώρα από άχρηστες ή λανθασμένες απαντήσεις σχετικά με το πώς να επιτύχω κάτι εντελώς διαφορετικό ή ξεπερασμένο και ασυνείδητο πακέτο Python. Τελικά, χτύπησα τη σφαίρα και την ομάδα και έχτισα τα πάντα από το μηδέν: δημιουργήσαμε τις προβολές, μάθαμε για το API της Google, δημιουργήσαμε τον πελάτη API και τελικά κατάφερα να ανεβάσω μέσω προγραμματισμού βίντεο από το Django.

Σε αυτήν την ανάρτηση, θα προσπαθήσω να σας καθοδηγήσω βήμα προς βήμα στον τρόπο δημοσίευσης βίντεο YouTube από την εφαρμογή Django. Αυτό θα απαιτήσει λίγο παιχνίδι με τα διαπιστευτήρια API Google - πρώτα με τη διεπαφή ιστού και έπειτα με τον κωδικό. Το ίδιο το τμήμα του YouTube είναι πολύ απλό. Πρέπει να καταλάβουμε πώς λειτουργεί το Google, γιατί μερικές φορές είναι δύσκολο και οι πληροφορίες διαδίδονται σε πολλά μέρη.



Προαπαιτούμενα



Συνιστώ να εξοικειωθείτε με τα ακόλουθα προτού αρχίσουμε να εργαζόμαστε:



  • API δεδομένων YouTube: Python Quickstart
  • API δεδομένων YouTube: Αναφορά API
  • API δεδομένων YouTube: Δείγματα κώδικα
  • Βιβλιοθήκη πελατών Google Python API
  • Βιβλιοθήκη πελατών Google Python API: Έγγραφο αναφοράς
  • Βιβλιοθήκη πελατών Google Python API: Δείγματα κώδικα
  • API YouTube: Δείγματα κώδικα Python

Ένα ενδιαφέρον κομμάτι κώδικα που πρέπει να σημειωθεί είναι το ακόλουθο απόσπασμα Python από το Έγγραφα API του Google YouTube :

# 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, μη διστάσετε να αντικαταστήσετε τις εντολές αναλόγως.

Θα χρησιμοποιήσω τα Python 3.7 και Django 2.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 Config

Ας διαμορφώσουμε τα διαπιστευτήρια του έργου μας τώρα, ώστε να μπορούμε να χρησιμοποιήσουμε τα API της Google.

Βήμα 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. Θα πρέπει να λάβετε ένα μήνυμα σχετικά με τα διαπιστευτήρια.

ένα μήνυμα σχετικά με τα διαπιστευτήρια

ποιες είναι οι 8 αρχές του σχεδιασμού

Βήμα 6. Κάντε κλικ στο μπλε κουμπί 'Δημιουργία διαπιστευτηρίων' στη δεξιά πλευρά και θα πρέπει να λάβετε την ακόλουθη οθόνη:

Κάνε κλικ στο

Βήμα 7. Επιλέξτε διακομιστή Web, Δεδομένα χρήστη:

Επιλέξτε διακομιστή Ιστού, Δεδομένα χρήστη

Βήμα 8. Προσθέστε εγκεκριμένες πηγές JS και ανακατευθύνετε URI. Συνεχίστε μέχρι το τέλος:

Προσθέστε εγκεκριμένες πηγές JS και ανακατευθύνετε URI.

Εντάξει τελειώσαμε με τα διαπιστευτήριά μας. Μπορείτε είτε να κάνετε λήψη των διαπιστευτηρίων σε μορφή JSON είτε να αντιγράψετε το ταυτότητα πελάτη και Μυστικό πελάτη .

Επιστροφή στο Django

Ας ξεκινήσουμε την πρώτη μας εφαρμογή Django. Συνήθως το ονομάζω «πυρήνα»:

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

Τώρα, ας προσθέσουμε τα ακόλουθα στο αρχείο root urls.py για να δρομολογήσουμε τα αιτήματα της αρχικής σελίδας στην κύρια εφαρμογή μας:

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

Στην βασική εφαρμογή, ας έχουμε ένα άλλο αρχείο urls.py, με ορισμένες ρυθμίσεις επίσης:

για τι είναι υπεύθυνος ένας CFO
# 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'

Μην ξεχάσετε να προσθέσετε το πεδίο βίντεο στο YouTubeForm:

# core/templates/core/home.html

Here is the form:

{% csrf_token %} {{ form.as_p }}

Ορίστε!

Μεταφόρτωση φόρμας

Στη συνέχεια, ελέγξτε τη σελίδα Studio του λογαριασμού σας στο YouTube (είναι σημαντικό να έχετε κανάλι):

Μεταφορτωμένο βίντεο

Εδώ είναι!

Σημειώσεις κλεισίματος

Ο κώδικας χρειάζεται κάποια βελτίωση, αλλά είναι ένα καλό σημείο εκκίνησης. Ελπίζω ότι βοήθησε με τα περισσότερα από τα Google API YouTube Προβλήματα ολοκλήρωσης. Ακολουθούν μερικά πιο σημαντικά πράγματα που πρέπει να λάβετε υπόψη:

  • Για εξουσιοδότηση, είναι σημαντικό να απαιτείται σύνδεση και επιπλέον δικαιώματα για τον χρήστη που θα εξουσιοδοτεί την εφαρμογή σας να ανεβάζει βίντεο.
  • Η μεταβλητή ροής πρέπει να απομακρυνθεί από το να είναι παγκόσμια. Δεν είναι ασφαλές σε περιβάλλον παραγωγής. Είναι καλύτερα να αποθηκεύσετε προσωρινά την προσωρινή μνήμη με βάση το αναγνωριστικό χρήστη ή την περίοδο σύνδεσης που έχουν πρόσβαση στην πρώτη προβολή, για παράδειγμα.
  • Η Google παρέχει ένα διακριτικό ανανέωσης μόνο όταν κάνετε την πρώτη εξουσιοδότηση. Έτσι, μετά από κάποιο χρονικό διάστημα, κυρίως μία ώρα, το διακριτικό σας θα λήξει και εάν δεν αλληλεπιδράσατε με το API του, θα αρχίσετε να λαμβάνετε class YouTubeForm(forms.Form): video = forms.FileField() απαντήσεις. Η εκ νέου εξουσιοδότηση του ίδιου χρήστη που έχει ήδη εξουσιοδοτήσει έναν πελάτη δεν εγγυάται το διακριτικό ανανέωσης. Πρέπει να ανακαλέσετε την εφαρμογή στη σελίδα Λογαριασμοί Google και, στη συνέχεια, να κάνετε ξανά τη διαδικασία εξουσιοδότησης. Σε ορισμένες περιπτώσεις, ίσως χρειαστεί να εκτελέσετε μια εργασία για να συνεχίσετε να ανανεώνετε το διακριτικό.
  • Πρέπει να απαιτείται σύνδεση κατά την άποψή μας, επειδή χρησιμοποιούμε διαπιστευτήρια χρήστη που σχετίζονται άμεσα με το αίτημα.

Σφάλμα FlowExchange

Η μεταφόρτωση απαιτεί πολύ χρόνο και η πραγματοποίησή της στην κύρια διαδικασία αίτησής σας μπορεί να προκαλέσει τον αποκλεισμό ολόκληρης της εφαρμογής κατά τη μεταφόρτωση. Ο σωστός τρόπος θα ήταν να το μετακινήσετε στη δική του διαδικασία και να χειριστείτε τις μεταφορτώσεις ασύγχρονα.

Ταραγμένος? Μην είστε, διαβάστε περισσότερα στο Ενορχήστρωση μιας ροής εργασίας στο παρασκήνιο στο σέλινο για Python .

βέλτιστες πρακτικές της δομής του λογιστικού τμήματος

Κατανόηση των βασικών

Τι είναι το Django και γιατί χρησιμοποιείται;

Από την επίσημη ιστοσελίδα: «Το Django είναι ένα υψηλού επιπέδου πλαίσιο Python Web που ενθαρρύνει την ταχεία ανάπτυξη και τον καθαρό, ρεαλιστικό σχεδιασμό». Είναι το μεγαλύτερο Python Web Framework και χρησιμοποιείται ευρέως επειδή προσφέρει εργαλεία για γρήγορη ανάπτυξη ιστού, όπως templating, διαχείριση βάσεων δεδομένων και ασφάλεια.

Είναι το Django ένα καλό πλαίσιο;

Σίγουρα. Είναι το πιο δημοφιλές και είναι ένα από τα κορυφαία πλαίσια. Το Django αναλαμβάνει τις περισσότερες από τις κοινές εργασίες ιστού, ώστε να μπορείτε να εστιάσετε στην εφαρμογή σας. Εάν δώσετε τρεις επιλογές για έναν προγραμματιστή Python κατά την έναρξη ενός έργου ιστού, το Django σίγουρα θα είναι ένα.

Τι είναι το API δεδομένων YouTube;

Είναι ένα API που παρέχεται από την Google για να περιλαμβάνει όλα τα είδη λειτουργικότητας του YouTube σε έναν συγκεκριμένο ιστότοπο. Αυτό περιλαμβάνει μεταφόρτωση βίντεο, διαχείριση λιστών αναπαραγωγής και συνδρομών, διαχείριση ρυθμίσεων καναλιού, αναζήτηση και άλλα.

Πώς μπορώ να αποκτήσω ένα κλειδί API YouTube;

Το πρώτο βήμα θα ήταν να πάτε εδώ (https://developers.google.com/youtube/v3/), αλλά αυτό θα σας οδηγήσει στην Κονσόλα προγραμματιστών Google (https://console.developers.google.com/) . Εκεί μπορείτε να αναζητήσετε το Youtube API και στη συνέχεια να το προσθέσετε.

Τα API της Google είναι δωρεάν;

Ορισμένα API της Google είναι δωρεάν, άλλα δεν είναι. Το YouTube Data API, για παράδειγμα, είναι δωρεάν.

Τι εκδόσεις Python και Django χρειάζομαι;

Για να ακολουθήσετε αυστηρά αυτήν την ανάρτηση, χρειάζεστε Python 3.7 και Django 2.1, αλλά αυτό θα πρέπει να λειτουργεί και με τα Python 2.7, 3.4, 3.5, 3.6 και Django 1.1, και 2.0 επίσης.

Απαιτείται ρύθμιση στο YouTube;

Χρειάζεστε έναν λογαριασμό YouTube και τουλάχιστον ένα κανάλι.

Chatbot UX - Συμβουλές και Σκέψεις Σχεδιασμού

Σχεδιασμός Ux

Chatbot UX - Συμβουλές και Σκέψεις Σχεδιασμού
Τι ακολουθεί για το Equity Crowdfunding;

Τι ακολουθεί για το Equity Crowdfunding;

Διαδικασίες Χρηματοδότησης

Δημοφιλείς Αναρτήσεις
Senior Full-stack Engineer, Talent Post-hire Team
Senior Full-stack Engineer, Talent Post-hire Team
Εισαγωγή στην επεξεργασία εικόνων Python στην Υπολογιστική Φωτογραφία
Εισαγωγή στην επεξεργασία εικόνων Python στην Υπολογιστική Φωτογραφία
Λειτουργίες παραθύρου εισαγωγής στο SQL
Λειτουργίες παραθύρου εισαγωγής στο SQL
Εγκατάσταση του Django στο IIS: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Εγκατάσταση του Django στο IIS: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Φαίνεται ενθουσιασμό - Μέσα στην αναπτυσσόμενη βιομηχανία ομορφιάς
Φαίνεται ενθουσιασμό - Μέσα στην αναπτυσσόμενη βιομηχανία ομορφιάς
 
Αρχιτεκτονική προσανατολισμένη στην υπηρεσία με AWS Lambda: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Αρχιτεκτονική προσανατολισμένη στην υπηρεσία με AWS Lambda: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Σχεδιασμός παρουσίασης και τέχνη της οπτικής αφήγησης
Σχεδιασμός παρουσίασης και τέχνη της οπτικής αφήγησης
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 3: XML και το μέλλον του JSON
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 3: XML και το μέλλον του JSON
5 Ερωτήσεις που πρέπει να υποβάλει ένα Master Scrum πριν εγγραφείτε σε μια εκκίνηση
5 Ερωτήσεις που πρέπει να υποβάλει ένα Master Scrum πριν εγγραφείτε σε μια εκκίνηση
Τρεις αρχές ανάπτυξης δεδομένων αποθήκης
Τρεις αρχές ανάπτυξης δεδομένων αποθήκης
Δημοφιλείς Αναρτήσεις
  • emacs vs notepad++
  • θεωρία gestalt της οπτικής αντίληψης
  • Παράδειγμα εφαρμογής web node js
  • πώς να χρησιμοποιήσετε το bootstrap 3
  • πώς να αναγνωρίσετε τις διαρροές μνήμης
  • τι είναι εταιρικό επιχειρηματικό κεφάλαιο
  • c++ αρχείο προέλευσης
Κατηγορίες
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κερδοφορία & Αποδοτικότητα
  • Σχεδιασμός Ux
  • Κινητό
  • © 2022 | Ολα Τα Δικαιώματα Διατηρούνται

    portaldacalheta.pt