wake-up-neo.com

Youtube-Videotitel mit API v3 ohne API-Schlüssel?

Ist es möglich, den Videotitel mithilfe der Video-ID mit API v3 ohne den API-Schlüssel abzurufen? Ich konnte in der API-Dokumentation keine Informationen oder Beispiele zum Abrufen des Titels finden.

12
sam

Um den Videotitel zu erhalten, benötigen Sie will einen API-Schlüssel, und Sie müssen eine Anfrage an:

https://www.googleapis.com/youtube/v3/videos?part=snippet&id={COMMA_DELIMITED_LIST_OF_IDS}&key={YOUR_API_KEY}

Im zurückgegebenen Paket befindet sich der Titel unter items.snippet.title.

Sie können keine any API-Daten ohne einen API-Schlüssel abrufen. Alle API-Anforderungen befinden sich in einem Quotensystem. Mit dem Schlüssel wird festgelegt, wie viel das tägliche Limit Ihrer App in Rechnung gestellt werden soll. Ein Anruf wie der oben genannte ist jedoch recht günstig; Es handelt sich um insgesamt 3 Einheiten (2 für das Snippet und 1 für die Anfrage selbst). Da Sie täglich 50.000.000 Einheiten erhalten und bis zu 50 Ausschnitte für dieselben 3 Einheiten abrufen können, ist die Verwendung des API-Schlüssels keine große Belastung.

16
jlmcdonald

Kein API-Schlüssel erforderlich

Um den Videotitel zu erhalten, benötigen SieNOTeinen API-Schlüssel, und Sie müssen eine Anfrage an:

https://noembed.com/embed?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ

Ändern Sie die YouTube-URL für das Video, das Sie benötigen.

Es funktioniert auch mit Vimeo und vielen anderen unterstützten Seiten mit URLs wie:

https://noembed.com/embed?url=https://vimeo.com/45196609

Einzelheiten

Es ist nicht möglich, den Videotitel mit der Video-ID mit API v3 ohne den API-Schlüssel abzurufen, wenn Sie die API direkt verwenden. Die YouTube-Daten-API Version 2 ist veraltet (siehe: YouTube-Daten-API Version 2: Häufig gestellte Fragen ). Derzeit unterstützt die YouTube-API oEmbed nicht mit JSONP , wie sie sollte ( siehe Ausgabe 4329: oEmbed Callback für JSONP ).

Glücklicherweise gibt es den Dienst Noembed , mit dem Sie die Titel (und andere Daten) von YouTube-Videos mit JSONP und ohne den API-Schlüssel abrufen können.

Demo

Hier ist eine einfache Demo, um den Titel mit jQuery zu erhalten:

var id = 'dQw4w9WgXcQ';
var url = 'https://www.youtube.com/watch?v=' + id;

$.getJSON('https://noembed.com/embed',
    {format: 'json', url: url}, function (data) {
    alert(data.title);
});

Siehe DEMO in JS Bin.

Siehe auch diese Fragen:

21
rsp

Es scheint, dass es genau die Bedeutung des oEmbed Protokolls ist.

oEmbed ist ein Format, um eine eingebettete Darstellung einer URL auf Websites von Drittanbietern zu ermöglichen. Mit der einfachen API kann eine Website eingebettete Inhalte (z. B. Fotos oder Videos) anzeigen, wenn ein Benutzer einen Link zu dieser - Ressource bereitstellt, ohne die Ressource direkt analysieren zu müssen.

Dieses Dokument ist auf GitHub gespeichert.

Weitere Informationen zum Format finden Sie unter: https://oembed.com

https://www.youtube.com/oembed?url=http%3A//youtube.com/watch%3Fv%3DM3r2XDceM6A&format=json

Beispielausgabe:

{
    "version": "1.0",
    "type": "video",
    "provider_name": "YouTube",
    "provider_url": "http://youtube.com/",
    "width": 425,
    "height": 344,
    "title": "Amazing Nintendo Facts",
    "author_name": "ZackScott",
    "author_url": "http://www.youtube.com/user/ZackScott",
    "html":
        "<object width=\"425\" height=\"344\">
            <param name=\"movie\" value=\"http://www.youtube.com/v/M3r2XDceM6A&fs=1\"></param>
            <param name=\"allowFullScreen\" value=\"true\"></param>
            <param name=\"allowscriptaccess\" value=\"always\"></param>
            <embed src=\"http://www.youtube.com/v/M3r2XDceM6A&fs=1\"
                type=\"application/x-shockwave-flash\" width=\"425\" height=\"344\"
                allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed>
        </object>",
}

Hier ist eine Liste von Inhaltsanbietern, die angegeben haben, dass sie dem Format entsprechen:

    "provider_name": "23HQ",
    "provider_name": "Adways",
    "provider_name": "Alpha App Net",
    "provider_name": "amCharts Live Editor",
    "provider_name": "Animatron",
    "provider_name": "Animoto",
    "provider_name": "Audiomack",
    "provider_name": "AudioSnaps",
    "provider_name": "Blackfire.io",
    "provider_name": "Box Office Buz",
    "provider_name": "Buttondown",
    "provider_name": "Cacoo",
    "provider_name": "Carbon Health",
    "provider_name": "CatBoat",
    "provider_name": "ChartBlocks",
    "provider_name": "chirbit.com",
    "provider_name": "CircuitLab",
    "provider_name": "Clipland",
    "provider_name": "Clyp",
    "provider_name": "Codepen",
    "provider_name": "Codepoints",
    "provider_name": "CodeSandbox",
    "provider_name": "CollegeHumor",
    "provider_name": "Commaful",
    "provider_name": "Coub",
    "provider_name": "Crowd Ranking",
    "provider_name": "Cyrano Systems",
    "provider_name": "Daily Mile",
    "provider_name": "Dailymotion",
    "provider_name": "Deviantart.com",
    "provider_name": "Didacte",
    "provider_name": "Dipity",
    "provider_name": "DocDroid",
    "provider_name": "Docs",
    "provider_name": "Dotsub",
    "provider_name": "edocr",
    "provider_name": "eduMedia",
    "provider_name": "EgliseInfo",
    "provider_name": "Embed Articles",
    "provider_name": "Embedly",
    "provider_name": "Ethfiddle",
    "provider_name": "Eyrie",
    "provider_name": "Facebook (Video)",
    "provider_name": "Flat",
    "provider_name": "Flickr",
    "provider_name": "FOX SPORTS Australia",
    "provider_name": "FrameBuzz",
    "provider_name": "FunnyOrDie",
    "provider_name": "Geograph Britain and Ireland",
    "provider_name": "Geograph Channel Islands",
    "provider_name": "Geograph Germany",
    "provider_name": "Getty Images",
    "provider_name": "Gfycat",
    "provider_name": "GIPHY",
    "provider_name": "Gyazo",
    "provider_name": "HuffDuffer",
    "provider_name": "Hulu",
    "provider_name": "iFixit",
    "provider_name": "IFTTT",
    "provider_name": "Indaco",
    "provider_name": "Infogram",
    "provider_name": "Inoreader",
    "provider_name": "inphood",
    "provider_name": "Instagram",
    "provider_name": "iSnare Articles",
    "provider_name": "ivlismusic",
    "provider_name": "Kickstarter",
    "provider_name": "Kidoju",
    "provider_name": "Kit",
    "provider_name": "Kitchenbowl",
    "provider_name": "Knacki",
    "provider_name": "LearningApps.org",
    "provider_name": "Ludus",
    "provider_name": "MathEmbed",
    "provider_name": "me.me",
    "provider_name": "Meetup",
    "provider_name": "MixCloud",
    "provider_name": "Moby Picture",
    "provider_name": "Modelo",
    "provider_name": "myBeweeg",
    "provider_name": "nanoo.tv",
    "provider_name": "nfb.ca",
    "provider_name": "Odds.com.au",
    "provider_name": "Office Mix",
    "provider_name": "Official FM",
    "provider_name": "On Aol",
    "provider_name": "Ora TV",
    "provider_name": "Orbitvu",
    "provider_name": "Oumy",
    "provider_name": "Pastery",
    "provider_name": "Pixdor",
    "provider_name": "Poll Daddy",
    "provider_name": "Port",
    "provider_name": "Portfolium",
    "provider_name": "Punters",
    "provider_name": "Quiz.biz",
    "provider_name": "Quizz.biz",
    "provider_name": "RapidEngage",
    "provider_name": "Reddit",
    "provider_name": "ReleaseWire",
    "provider_name": "RepubHub",
    "provider_name": "ReverbNation",
    "provider_name": "Roomshare",
    "provider_name": "Rumble",
    "provider_name": "Sapo Videos",
    "provider_name": "Screen9",
    "provider_name": "Screencast.com",
    "provider_name": "Screenr",
    "provider_name": "ScribbleMaps",
    "provider_name": "Scribd",
    "provider_name": "ShortNote",
    "provider_name": "Shoudio",
    "provider_name": "Show the Way, actionable location info",
    "provider_name": "Silk",
    "provider_name": "Simplecast",
    "provider_name": "Sizzle",
    "provider_name": "Sketchfab",
    "provider_name": "SlideShare",
    "provider_name": "SmugMug",
    "provider_name": "SocialExplorer",
    "provider_name": "Songlink",
    "provider_name": "SoundCloud",
    "provider_name": "Soundsgood",
    "provider_name": "SpeakerDeck",
    "provider_name": "Spotful",
    "provider_name": "Spreaker",
    "provider_name": "Streamable",
    "provider_name": "StreamOneCloud",
    "provider_name": "Sutori",
    "provider_name": "Sway",
    "provider_name": "Ted",
    "provider_name": "The New York Times",
    "provider_name": "They Said So",
    "provider_name": "TickCounter",
    "provider_name": "Toornament",
    "provider_name": "Topy",
    "provider_name": "Twitch",
    "provider_name": "Twitter",
    "provider_name": "Ubideo",
    "provider_name": "UOL",
    "provider_name": "Ustream",
    "provider_name": "Utposts",
    "provider_name": "Uttles",
    "provider_name": "VeeR VR",
    "provider_name": "Verse",
    "provider_name": "VEVO",
    "provider_name": "VideoJug",
    "provider_name": "Vidlit",
    "provider_name": "Vimeo",
    "provider_name": "Vlipsy",
    "provider_name": "wecandeo",
    "provider_name": "Wiredrive",
    "provider_name": "wizer.me",
    "provider_name": "Wootled",
    "provider_name": "WordPress.com",
    "provider_name": "Yes, I Know IT!",
    "provider_name": "YFrog",
    "provider_name": "YouTube",
    "provider_name": "ZProvider",

Beachten Sie, dass dies nicht bedeutet, dassCORSauf diesen Websites aktiviert ist. 

Diese Daten werden meistens serverseitig analysiert.

Die meisten dieser Informationen können auch durch Analysieren der <meta og> open graph html-Attribute einer bestimmten Seite erhalten werden.

Siehe http://ogp.me/ für Informationen zu Open Graph. 

3
Cryptopat

Ja, Sie können ohne API nur Requests an re Modules 

Code in Python:

import requests,re

video_url = "https://www.youtube.com/watch?v=2i2khp_npdE"

response = requests.get(video_url).text

title = re.findall(r'"title":"[^>]*",',response)[0].split(',')[0][9:-1]

print("\n[+] Video Title: {}".format(title))

Ausgabe:

[+] Videotitel: Alan Walker - Sing Me To Sleep

0
Oseid