如何通过Powershell获取YouTube视频详细信息(标题、作者、持续时间等)?

如何通过Powershell获取YouTube视频详细信息(标题、作者、持续时间等)?,powershell,youtube,youtube-data-api,Powershell,Youtube,Youtube Data Api,我有这个剧本: param( [String]$VideoId ) [String]$gdata_uri = "http://gdata.youtube.com/feeds/api/videos/$VideoId" $metadata = irm $gdata_uri $duration = $metadata.entry['media:group']['yt:duration'].seconds echo $duration 这获得了所需YouTube视频的持续时间(秒),但此后AP

我有这个剧本:

param(
  [String]$VideoId
)

[String]$gdata_uri = "http://gdata.youtube.com/feeds/api/videos/$VideoId"

$metadata = irm $gdata_uri
$duration = $metadata.entry['media:group']['yt:duration'].seconds
echo $duration
这获得了所需YouTube视频的持续时间(秒),但此后API发生了变化,不再工作。我得到了一个API密钥,并将旧的API链接与新的API链接交换:
https://www.googleapis.com/youtube/v3/videos?id=$VideoId&key=&part=contentDetails
但它仍然不起作用,因此其他一些内容已经更改


有人能帮我修改一下这个脚本,使它在新的API上工作,并从持续时间中获取其他信息吗?

好的,我终于让它工作了。对不起,如果我把你的时间浪费在我的简单回答问题上

只需将
$duration=$metadata.entry['media:group']['yt:duration'].seconds
更改为
$duration=$metadata.items.contentDetails.duration
,并针对其他信息(如author)进行调整,您就可以通过在浏览器中输入API url来确定要更改什么

现在我需要弄清楚如何将ISO8601设置为秒,但我想我现在将传递堆栈溢出

编辑:这里,如果你来自谷歌,因为我找不到如何将YouTube持续时间字符串设置为秒的直接答案,我从以下片段中制作了这个:

$VideoId = "dQw4w9WgXcQ"

[String]$gdata_uri = "https://www.googleapis.com/youtube/v3/videos?id=$VideoId&key=<APIKEY>&part=contentDetails"

$metadata = irm $gdata_uri
$duration = $metadata.items.contentDetails.duration;
echo $duration

$ts = [Xml.XmlConvert]::ToTimeSpan("$duration")
'{0:00},{1:00},{2:00}.{3:00}' -f ($ts.Hours+$ts.Days*24), $ts.Minutes, $ts.Seconds, $ts.Milliseconds

$timespan = [TimeSpan]::Parse($ts)
$totalSeconds = $timespan.TotalSeconds
echo $totalSeconds
$VideoId=“dQw4w9WgXcQ”
[字符串]$gdata_uri=”https://www.googleapis.com/youtube/v3/videos?id=$VideoId&key=

  • 祝你好运。

    你的研究应该从问答开始,这样就不会有人为你重写别人的代码。我的意思是,这真的不是一个复杂的脚本,它只有10行。这不像我抄袭了数月的工作。我只是想有人帮我指出正确的条目,但如果它让你高兴,我会我改变了草稿。这是一个很好的研究和解决方案,我试着去做,但在API键上卡住了。不要放弃,这里有一个ISO 8601的链接