Πριν από λίγο καιρό, δούλευα για έναν πελάτη, ενσωματώνοντας κριτικές βίντεο στον ιστότοπό του. Όπως κάθε προγραμματιστής που έδωσε κίνητρα για την επίλυση ενός νέου προβλήματος, το πρώτο πράγμα που έκανα ήταν το Google και βρήκα μια πληθώρα από άχρηστες ή λανθασμένες απαντήσεις σχετικά με το πώς να επιτύχω κάτι εντελώς διαφορετικό ή ξεπερασμένο και ασυνείδητο πακέτο Python. Τελικά, χτύπησα τη σφαίρα και την ομάδα και έχτισα τα πάντα από το μηδέν: δημιουργήσαμε τις προβολές, μάθαμε για το API της Google, δημιουργήσαμε τον πελάτη API και τελικά κατάφερα να ανεβάσω μέσω προγραμματισμού βίντεο από το Django.
Σε αυτήν την ανάρτηση, θα προσπαθήσω να σας καθοδηγήσω βήμα προς βήμα στον τρόπο δημοσίευσης βίντεο YouTube από την εφαρμογή Django. Αυτό θα απαιτήσει λίγο παιχνίδι με τα διαπιστευτήρια API Google - πρώτα με τη διεπαφή ιστού και έπειτα με τον κωδικό. Το ίδιο το τμήμα του YouTube είναι πολύ απλό. Πρέπει να καταλάβουμε πώς λειτουργεί το Google, γιατί μερικές φορές είναι δύσκολο και οι πληροφορίες διαδίδονται σε πολλά μέρη.
Προαπαιτούμενα
Συνιστώ να εξοικειωθείτε με τα ακόλουθα προτού αρχίσουμε να εργαζόμαστε:
Ένα ενδιαφέρον κομμάτι κώδικα που πρέπει να σημειωθεί είναι το ακόλουθο απόσπασμα 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 .
Ας διαμορφώσουμε τα διαπιστευτήρια του έργου μας τώρα, ώστε να μπορούμε να χρησιμοποιήσουμε τα API της Google.
Βήμα 1. Μεταβείτε στην ακόλουθη διεύθυνση URL:
https://console.developers.google.com/apis/library/youtube.googleapis.com
Βήμα 2. Δημιουργήστε ένα νέο έργο.
Βήμα 3. Κάντε κλικ στην επιλογή 'Ενεργοποίηση API και υπηρεσιών'.
Βήμα 4. Αναζητήστε το YouTube Data API v3 και κάντε κλικ στην επιλογή 'Ενεργοποίηση'.
Βήμα 5. Θα πρέπει να λάβετε ένα μήνυμα σχετικά με τα διαπιστευτήρια.
ποιες είναι οι 8 αρχές του σχεδιασμού
Βήμα 6. Κάντε κλικ στο μπλε κουμπί 'Δημιουργία διαπιστευτηρίων' στη δεξιά πλευρά και θα πρέπει να λάβετε την ακόλουθη οθόνη:
Βήμα 7. Επιλέξτε διακομιστή Web, Δεδομένα χρήστη:
Βήμα 8. Προσθέστε εγκεκριμένες πηγές JS και ανακατευθύνετε URI. Συνεχίστε μέχρι το τέλος:
Εντάξει τελειώσαμε με τα διαπιστευτήριά μας. Μπορείτε είτε να κάνετε λήψη των διαπιστευτηρίων σε μορφή JSON είτε να αντιγράψετε το ταυτότητα πελάτη και Μυστικό πελάτη .
Ας ξεκινήσουμε την πρώτη μας εφαρμογή 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 Προβλήματα ολοκλήρωσης. Ακολουθούν μερικά πιο σημαντικά πράγματα που πρέπει να λάβετε υπόψη:
class YouTubeForm(forms.Form): video = forms.FileField()
απαντήσεις. Η εκ νέου εξουσιοδότηση του ίδιου χρήστη που έχει ήδη εξουσιοδοτήσει έναν πελάτη δεν εγγυάται το διακριτικό ανανέωσης. Πρέπει να ανακαλέσετε την εφαρμογή στη σελίδα Λογαριασμοί Google και, στη συνέχεια, να κάνετε ξανά τη διαδικασία εξουσιοδότησης. Σε ορισμένες περιπτώσεις, ίσως χρειαστεί να εκτελέσετε μια εργασία για να συνεχίσετε να ανανεώνετε το διακριτικό.
Η μεταφόρτωση απαιτεί πολύ χρόνο και η πραγματοποίησή της στην κύρια διαδικασία αίτησής σας μπορεί να προκαλέσει τον αποκλεισμό ολόκληρης της εφαρμογής κατά τη μεταφόρτωση. Ο σωστός τρόπος θα ήταν να το μετακινήσετε στη δική του διαδικασία και να χειριστείτε τις μεταφορτώσεις ασύγχρονα.
Ταραγμένος? Μην είστε, διαβάστε περισσότερα στο Ενορχήστρωση μιας ροής εργασίας στο παρασκήνιο στο σέλινο για Python .
βέλτιστες πρακτικές της δομής του λογιστικού τμήματος
Από την επίσημη ιστοσελίδα: «Το Django είναι ένα υψηλού επιπέδου πλαίσιο Python Web που ενθαρρύνει την ταχεία ανάπτυξη και τον καθαρό, ρεαλιστικό σχεδιασμό». Είναι το μεγαλύτερο Python Web Framework και χρησιμοποιείται ευρέως επειδή προσφέρει εργαλεία για γρήγορη ανάπτυξη ιστού, όπως templating, διαχείριση βάσεων δεδομένων και ασφάλεια.
Σίγουρα. Είναι το πιο δημοφιλές και είναι ένα από τα κορυφαία πλαίσια. Το Django αναλαμβάνει τις περισσότερες από τις κοινές εργασίες ιστού, ώστε να μπορείτε να εστιάσετε στην εφαρμογή σας. Εάν δώσετε τρεις επιλογές για έναν προγραμματιστή Python κατά την έναρξη ενός έργου ιστού, το Django σίγουρα θα είναι ένα.
Είναι ένα API που παρέχεται από την Google για να περιλαμβάνει όλα τα είδη λειτουργικότητας του YouTube σε έναν συγκεκριμένο ιστότοπο. Αυτό περιλαμβάνει μεταφόρτωση βίντεο, διαχείριση λιστών αναπαραγωγής και συνδρομών, διαχείριση ρυθμίσεων καναλιού, αναζήτηση και άλλα.
Το πρώτο βήμα θα ήταν να πάτε εδώ (https://developers.google.com/youtube/v3/), αλλά αυτό θα σας οδηγήσει στην Κονσόλα προγραμματιστών Google (https://console.developers.google.com/) . Εκεί μπορείτε να αναζητήσετε το Youtube API και στη συνέχεια να το προσθέσετε.
Ορισμένα API της Google είναι δωρεάν, άλλα δεν είναι. Το YouTube Data API, για παράδειγμα, είναι δωρεάν.
Για να ακολουθήσετε αυστηρά αυτήν την ανάρτηση, χρειάζεστε Python 3.7 και Django 2.1, αλλά αυτό θα πρέπει να λειτουργεί και με τα Python 2.7, 3.4, 3.5, 3.6 και Django 1.1, και 2.0 επίσης.
Χρειάζεστε έναν λογαριασμό YouTube και τουλάχιστον ένα κανάλι.