{"id":928,"date":"2015-03-20T22:52:23","date_gmt":"2015-03-21T06:52:23","guid":{"rendered":"https:\/\/accretiondisc.com\/blog\/?p=928"},"modified":"2015-03-21T08:15:52","modified_gmt":"2015-03-21T16:15:52","slug":"podcast-tagging","status":"publish","type":"post","link":"https:\/\/accretiondisc.com\/blog\/2015\/03\/20\/podcast-tagging\/","title":{"rendered":"Podcast Tagging"},"content":{"rendered":"<p>I&#8217;ve got a <a href=\"https:\/\/itunes.apple.com\/us\/podcast\/jewel-lake-parish-sermon-podcast\/id535040167\">podcast<\/a> and it&#8217;s a chore to update. I&#8217;ve built some tools to help me produce an RSS feed for the podcast, which is a good thing, since RSS = XML = too persnickety to do by hand. But I&#8217;ve had to do some of the work by hand, specifically, tagging the .MP3 files with the appropriate ID3 tags. I was using iTunes, which has never been very fun, and seems to get worse with each iteration.<\/p>\n<p>Enter <a href=\"http:\/\/eyed3.nicfit.net\/\">eyeD3<\/a>. It&#8217;s a tag editor, but unlike most of them, you can operate it from the command line. Better yet, eyeD3 understands <a href=\"http:\/\/id3.org\/id3v2.3.0\">ID3 v. 2.X tags<\/a>. The <a href=\"http:\/\/eyed3.nicfit.net\/plugins\/classic_plugin.html\">documentation for the classic eyeD3 interface<\/a> is what I like best. You can use it to set <a href=\"https:\/\/auphonic.com\/blog\/2012\/02\/18\/podcast-comparison-part-4-mpeg-4-itunes-style-metadata-aac-audio-m4a-mp4\/\">all kinds of tags<\/a> for your podcast. Like <a href=\"http:\/\/help.mp3tag.de\/main_tags.html\">these v2.x tags<\/a> here. If you want to set one of the date tags, you&#8217;ll need to know how to specify a date in <a href=\"http:\/\/en.wikipedia.org\/wiki\/ISO_8601\">ISO 8601 format<\/a>.<\/p>\n<p>Also, did you know that <a href=\"http:\/\/manpages.ubuntu.com\/manpages\/gutsy\/man1\/mp3info.1.html\">mp3info<\/a> lets you get the length of an audio file from the command line? I didn&#8217;t, until <a href=\"http:\/\/www.linuxquestions.org\/questions\/linux-software-2\/command-line-tool-to-print-length-of-mp3-files-176836\/\">I read it on the internet<\/a>, and durned if it&#8217;s not true. That&#8217;s pretty nifty. And there&#8217;s even <a href=\"https:\/\/github.com\/moumar\/ruby-mp3info\">a Ruby API<\/a> for it!<\/p>\n<p>I also learned about something called <a href=\"http:\/\/mutagen.readthedocs.org\/en\/latest\/index.html#\">mutagen<\/a>, which is like <em>eyed3<\/em> but for arbitrary types of audio files.<\/p>\n<p>I spent the day learning all this, so my tools still need to be updated to do what I now know can be done programmatically. But I&#8217;ve done the hardest part,  viz.:<\/p>\n<p><a href=\"https:\/\/www.flickr.com\/photos\/befuddledsenses\/16691983629\" title=\"Podcast Tagging by Luke Jones, on Flickr\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/farm9.staticflickr.com\/8712\/16691983629_91406fdfc8.jpg\" width=\"500\" height=\"275\" alt=\"Podcast Tagging\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve got a podcast and it&#8217;s a chore to update. I&#8217;ve built some tools to help me produce an RSS feed for the podcast, which is a good thing, since RSS = XML = too persnickety to do by hand. But I&#8217;ve had to do some of the work by hand, specifically, tagging the .MP3 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[23,52],"tags":[281,841,346,643,644,840,842],"class_list":["post-928","post","type-post","status-publish","format-standard","hentry","category-life","category-technology","tag-apple","tag-id3","tag-itunes","tag-mp3","tag-podcast","tag-tagger","tag-tags"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paRqpr-eY","_links":{"self":[{"href":"https:\/\/accretiondisc.com\/blog\/wp-json\/wp\/v2\/posts\/928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/accretiondisc.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/accretiondisc.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/accretiondisc.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/accretiondisc.com\/blog\/wp-json\/wp\/v2\/comments?post=928"}],"version-history":[{"count":0,"href":"https:\/\/accretiondisc.com\/blog\/wp-json\/wp\/v2\/posts\/928\/revisions"}],"wp:attachment":[{"href":"https:\/\/accretiondisc.com\/blog\/wp-json\/wp\/v2\/media?parent=928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/accretiondisc.com\/blog\/wp-json\/wp\/v2\/categories?post=928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/accretiondisc.com\/blog\/wp-json\/wp\/v2\/tags?post=928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}