Get title from YouTube videos

前端 未结 17 1922
抹茶落季
抹茶落季 2020-12-07 17:30

I want to extract the Title of YouTube\'s videos. How can I do this?

Thanks.

相关标签:
17条回答
  • 2020-12-07 17:56

    Using JavaScript data API:

    var loadInfo = function (videoId) {
        var gdata = document.createElement("script");
        gdata.src = "http://gdata.youtube.com/feeds/api/videos/" + videoId + "?v=2&alt=jsonc&callback=storeInfo";
        var body = document.getElementsByTagName("body")[0];
        body.appendChild(gdata);
    };
    
    var storeInfo = function (info) {
        console.log(info.data.title);
    };
    

    Then you just need to call loadInfo(videoId).

    More informations are available on the API documentation.

    0 讨论(0)
  • 2020-12-07 17:57

    Here's some cut and paste code for ColdFusion:

    http://trycf.com/gist/f296d14e456a7c925d23a1282daa0b90

    It works on CF9 (and likely, earlier versions) using YouTube API v3, which requires an API key.

    I left some comments and diag stuff in it, for anyone who wants to dig deeper. Hope it helps someone.

    0 讨论(0)
  • 2020-12-07 18:00

    Similarly to Matej M, but more simply:

    import requests
    from bs4 import BeautifulSoup
    
    
    def get_video_name(id: str):
        """
        Return the name of the video as it appears on YouTube, given the video id.
        """
        r = requests.get(f'https://youtube.com/watch?v={id}')
        r.raise_for_status()
        soup = BeautifulSoup(r.content, "lxml")
        return soup.title.string
    
    
    if __name__ == '__main__':
        js = get_video_name("RJqimlFcJsM")
        print('\n\n')
        print(js)
    
    0 讨论(0)
  • 2020-12-07 18:01

    Hello In python3 i founded 2 ways

    1) without API KEY

    import urllib.request
    import json
    import urllib
    import pprint
    
    #change to yours VideoID or change url inparams
    VideoID = "SZj6rAYkYOg" 
    
    params = {"format": "json", "url": "https://www.youtube.com/watch?v=%s" % VideoID}
    url = "https://www.youtube.com/oembed"
    query_string = urllib.parse.urlencode(params)
    url = url + "?" + query_string
    
    with urllib.request.urlopen(url) as response:
        response_text = response.read()
        data = json.loads(response_text.decode())
        pprint.pprint(data)
        print(data['title'])
    

    example results:

    {'author_name': 'Google Developers',
     'author_url': 'https://www.youtube.com/user/GoogleDevelopers',
     'height': 270,
     'html': '<iframe width="480" height="270" '
             'src="https://www.youtube.com/embed/SZj6rAYkYOg?feature=oembed" '
             'frameborder="0" allow="autoplay; encrypted-media" '
             'allowfullscreen></iframe>',
     'provider_name': 'YouTube',
     'provider_url': 'https://www.youtube.com/',
     'thumbnail_height': 360,
     'thumbnail_url': 'https://i.ytimg.com/vi/SZj6rAYkYOg/hqdefault.jpg',
     'thumbnail_width': 480,
     'title': 'Google I/O 101:  Google APIs: Getting Started Quickly',
     'type': 'video',
     'version': '1.0',
     'width': 480}
    Google I/O 101:  Google APIs: Getting Started Quickly
    

    2) Using Google API - required APIKEY

    import urllib.request
    import json
    import urllib
    import pprint
    
    APIKEY = "YOUR_GOOGLE_APIKEY"
    VideoID = "YOUR_VIDEO_ID"
    
    params = {'id': VideoID, 'key': APIKEY,
              'fields': 'items(id,snippet(channelId,title,categoryId),statistics)',
              'part': 'snippet,statistics'}
    
    url = 'https://www.googleapis.com/youtube/v3/videos'
    
    query_string = urllib.parse.urlencode(params)
    url = url + "?" + query_string
    
    with urllib.request.urlopen(url) as response:
        response_text = response.read()
        data = json.loads(response_text.decode())
        pprint.pprint(data)
        print("TITLE: %s " % data['items'][0]['snippet']['title'])
    

    example results:

    {'items': [{'id': 'SZj6rAYkYOg',
                'snippet': {'categoryId': '28',
                            'channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw',
                            'title': 'Google I/O 101:  Google APIs: Getting '
                                     'Started Quickly'},
                'statistics': {'commentCount': '36',
                               'dislikeCount': '20',
                               'favoriteCount': '0',
                               'likeCount': '418',
                               'viewCount': '65783'}}]}
    TITLE: Google I/O 101:  Google APIs: Getting Started Quickly
    
    0 讨论(0)
  • 2020-12-07 18:02

    Also can be Done By using scrapy module

    just I am telling you the cmd lines

    scrapy shell "https://www.youtube.com/channel/UCVPrNa-6fkLu4DVF2m_0n2A"

    or use the Video link

    then type

    Out[1]: response.xpath("//h1/span/text()").getall()                                                                                                  
    Out[1]: ['\n    Python Package Publishing (Part-2) | Setting up the Package\n  ']
    

    Remember For this u need to install scrapy module

    This is 100% working and by far the most easy way I found to get the title and all other description also.

    0 讨论(0)
提交回复
热议问题