如何将播客的发布日期添加到文件名或文件元数据中?

如何将播客的发布日期添加到文件名或文件元数据中?

我用豆荚下载播客。

例如,我下载了经济谈话这是第一个播客:

在此处输入图片描述

gPodder 告诉我这个播客于“2006-03-16”发布。

我如何将此信息(yyyy-mm-dd“2006-03-16”)添加到文件名的前面或者文件元数据的某个位置?

我的目标是对我下载的所有播客执行相同的操作,而不仅仅是这个特定的播客。


目前,此yyyy-mm-dd信息似乎没有出现在文件元数据的任何地方:

在此处输入图片描述

答案1

看起来 gPodder 已经有一个内置扩展它可以完成这个任务。无需下载,因为它已包含在内。

  1. 点击豆荚>优先
  2. 点击扩展标签。
  3. 勾选下载后重命名剧集
  4. 点击编辑配置首选项窗口右下角的按钮。
  5. 勾选扩展名.重命名_下载.添加_排序日期
  6. 关闭剩余的窗口。

所有将来下载的播客文件名都应以“年-月-日-”。

您也可以选择启用扩展.重命名_下载.添加_播客标题将标题也添加到文件名前面。


您还可以使用以下 PowerShell 重命名现有文件:

#
# PrependDateToPodcasts.ps1
#
Param (
  [Parameter(Mandatory=$true, Position=0)][string]$FeedURL,
  [Parameter(Mandatory=$true, Position=1)][string]$Directory,
  [Parameter()][switch]$DryRun = $false
)

$XML = Invoke-WebRequest $FeedURL
$Podcasts = ($XML | Select-Xml "rss/channel/item").Node

$Podcasts | ForEach-Object {
  $Filename = Split-Path $_.enclosure.url -Leaf
  $Date = [datetime](($_.pubDate -replace " [A-Z]{3}$", "") -replace "^\w{3}", "") | Get-Date -Format "yyyy-MM-dd"

  $FilePath = Join-Path $Directory $Filename
  $FilenameNew = "${Date} - ${Filename}"

  if (Test-Path $FilePath) {
    Write-Host "Renaming `"${Filename}`" to `"${FilenameNew}`"."
    if (!$DryRun) {
      Rename-Item $FilePath $FilenameNew
    }
  }
}
# Preview changes before actually running.
.\PrependDateToPodcasts.ps1 "http://files.libertyfund.org/econtalk/EconTalk.xml" "C:\path\to\gPodder\Downloads\EconTalk" -DryRun

# Rename for real.
.\PrependDateToPodcasts.ps1 "http://files.libertyfund.org/econtalk/EconTalk.xml" "C:\path\to\gPodder\Downloads\EconTalk"

相关内容