从 youtube 网址检索 JSON

Retrieving a JSON from a youtube URL

本文关键字:检索 JSON youtube      更新时间:2023-09-26

我一直在寻找一种不使用API即可获得YouTube视频时长的方法。检查他们的HTML源代码,我看到有一个名为ytplayer.config的javascript var(JSON包含有关视频的信息)。如何让该 JSON 在脚本中解析?

谢谢

编辑。这是变量

ytplayer.config = {
    "assets": {
        "js": "'/'/s.ytimg.com'/yts'/jsbin'/player-es_MX-vfl0Fpy-X'/base.js",
        "css": "'/'/s.ytimg.com'/yts'/cssbin'/www-player-2x-webp-vflCn1Mkc.css"
    },
    ...
    ...
    "args": {
        "vm": "CAEQAA",
        "cl": "115273808",
        "iv_invideo_url": "https:'/'/www.youtube.com'/annotations_invideo?cap_hist=1'u0026video_id=tRY6WtFVtVY",
        "tmi": "1",
        "no_get_video_log": "1",
        "host_language": "es-419",
        "keywords": "Jorge,Lanata,TN,periodismo",
        "author": "Tribuna de Periodistas",
         ...
        "length_seconds": "130",
         ...
    }
};

你离得很近。您可以通过两种方式执行此操作:

使用配置对象:

ytplayer.config.args.length_seconds

它以秒为单位提供视频时间,然后您可以除以 60 以获得以分钟为单位的时间

第二种方式,USing jquery:

$('.ytp-time-duration').innerHTML

上面的解决方案可以在客户端使用,如果您正在寻找服务器端解决方案,请告诉我

用户输入 URL 后,将 URL 发送到您的服务器.. 使用任何后端语言,我习惯于 python,因此告诉您。

import urllib
link = "https:<youtube url>"
f = urllib.urlopen(link)
myfile = f.read()

myfile拥有所有的HTML内容,你可以使用任何解析器来获取的值

YTP-时间段

希望对您有所帮助。