Seite 1 von 1

Youtube durchsuchen nach LInks

Verfasst: Freitag 27. Oktober 2017, 16:27
von lowendgamer
Hallo zusammen,

ich plane einen Audiomusikplayer mit Sprachsteuerung für mein Auto zu programmieren. Dabei habe zunächst vor, dass als normales Programm auf meinem Linux Mint 18.2 laufen zu lassen.
Zunächst habe ich mithilfe von des Moduls SpeechRecognition mir meine Suchanfrage anzeigen lassen --> success

Anschließend möchte ich mir mithilfe des HTML Codes von YT in Verbindung mit meiner Suchanfrage die Suchergebnisse anzeigen lassen.

:D https://www.youtube.com/results?search_query=' :D + den Begriff (z.b Songname)

Danach kann ich einfach mit VLC bzw. cvlc --no-video mir den Link aus Audio wiedergeben lassen.


NUN ZU MEINEM PROBLEM:

Ich kann mir mithilfe des HTML Codes und dessen Auswertung mit BeautifulSoup keine LInks ausgeben lassen. Habt ihr eine Idee was ich machen könnte, dass ich das bewerkstelligen kann?

Viele Grüße und vielen Dank im Voraus!

Re: Youtube durchsuchen nach LInks

Verfasst: Freitag 27. Oktober 2017, 20:01
von narpfel
Moin,

gibt es einen guten Grund, warum du die Youtube-HTML-Seite parsen möchtest? Im Prinzip ist das möglich, aber Google bietet eine API an, um die Daten direkt abrufen zu können. Hier ist das für die Suchabfrage dokumentiert. Mit Beispielcode in Python.

Ganz simpel kann man natürlich auch direkt den `GET`-Request absetzen, ohne die API-Client-Bibliothek zu benutzen. Generell ist für sowas die `requests`-Bibliothek besser geeignet (sprich einfacher zu benutzen), als `urllib` aus der Standardbibliothek. Das könnte dann beispielsweise so aussehen (ungetestet), um Videos mit dem Stichwort „Python“ zu suchen:

Code: Alles auswählen

import requests


def main():
    response = requests.get(
        "https://www.googleapis.com/youtube/v3/search/",
        params={
            "part": "id",
            "q": "Python",
            "type": "video",
        }
    )
    print(response.json())


if __name__ == "__main__":
    main()

Re: Youtube durchsuchen nach LInks

Verfasst: Freitag 27. Oktober 2017, 20:58
von lowendgamer
Vielen Dank für die schnelle Antwort! Werde es gleich ausprobieren :D

edit:

Nun beim Ausführen des Skripts überschreitet er das tägliche Limit von der Google API.

Code: Alles auswählen

[code]{'error': {'code': 403, 'message': 'Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.', 'errors': [{'reason': 'dailyLimitExceededUnreg', 'message': 'Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.', 'domain': 'usageLimits', 'extendedHelp': 'https://code.google.com/apis/console'}]}}
[/code]

wende mich nun mal der API zu per Google Seite

Re: Youtube durchsuchen nach LInks

Verfasst: Samstag 9. Dezember 2017, 23:31
von lowendgamer
Danke habe die Variante probiert, hat aber nicht funktioniert. Bin nun für weitere Vorschläge offen.

Re: Youtube durchsuchen nach LInks

Verfasst: Sonntag 10. Dezember 2017, 00:47
von snafu
Was genau hat nicht funktioniert? Was hast du konkret versucht? Wie hat sich der Fehler / das Nicht-Funktionieren geäußert?

Re: Youtube durchsuchen nach LInks

Verfasst: Dienstag 2. Januar 2018, 20:17
von sls
lowendgamer hat geschrieben: Nun beim Ausführen des Skripts überschreitet er das tägliche Limit von der Google API.
Ich glaube dass das nicht ganz richtig ist, viel mehr fehlt ihm beim Request ein zur Nutzung der Youtube API benötigter Key. Dieser berechtigt dann zur Verwendung der Ressourcen durch die API. Wie man an diesen developer key gelangt steht in den Google Youtube API docs.