Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

タグ: AVURLAsset

MP3ファイルからMP3タグの情報を取得

Posted on 4月 1, 2019 by Takaaki Naganoya

MP3ファイルからMP3タグの情報を取得するAppleScriptです。

とりあえず「取り出せることを確認した」というレベルの実装で、取り出したデータをタグに応じた加工を行うといった処理はほとんど書いてありません。各自よろしくお取り扱いください(投げやり)。

正直、Musicフォルダ以外に転がっている野良MP3ファイルから直接MP3タグ情報を読まなくても、iTunes.appにインポートしておいて、iTunes.appやらiTunesLibrary.framework経由で楽曲ファイルにアクセスしたほうが(データ形式のゆらぎを吸収してもらえるため)安全で楽です。

AppleScript名:MP3ファイルからMP3タグの情報を取得.scptd
—
–  Created by: Takaaki Naganoya
–  Created on: 2019/04/01
—
–  Copyright © 2019 Piyomaru Software, All Rights Reserved
— 参照先:http://d.hatena.ne.jp/terazzo/20120107/1325967445
use AppleScript version "2.4" — Yosemite (10.10) or later
use framework "Foundation"
use framework "AppKit"
use framework "AVFoundation"
use scripting additions

property |NSURL| : a reference to current application’s |NSURL|
property NSImage : a reference to current application’s NSImage
property AVURLAsset : a reference to current application’s AVURLAsset
property AVMetadataFormatID3Metadata : a reference to current application’s AVMetadataFormatID3Metadata
property AVMetadataCommonKeyAlbumName : a reference to current application’s AVMetadataCommonKeyAlbumName

set aPath to POSIX path of (choose file of type {"public.mp3"})
set aMP3Info to getMP3TagsFromFile(aPath) of me

on getMP3TagsFromFile(aPath)
  set aURL to |NSURL|’s fileURLWithPath:aPath
  
set anAsset to AVURLAsset’s assetWithURL:aURL
  
  
set aRes to (anAsset’s availableMetadataFormats()’s containsObject:(AVMetadataFormatID3Metadata)) as boolean
  
if aRes = false then return false
  
  
set origMetadata to (anAsset’s metadataForFormat:(AVMetadataFormatID3Metadata)) as list
  
set outList to {}
  
  
repeat with i in origMetadata
    set aKey to (i’s |key|()) as list of string or string –as anything
    
set bKey to i’s commonKey() as list of string or string –as anything
    
    
if aKey = "PIC" or aKey = "APIC" then
      set aVal to (i’s value())
      
set aVal to (NSImage’s alloc()’s initWithData:aVal)
    else
      set aVal to (i’s value()) as list of string or string –as anything
    end if
    
set the end of outList to {aKey, bKey, aVal}
  end repeat
  
  
return outList
end getMP3TagsFromFile

★Click Here to Open This Script 

Posted in file | Tagged 10.12savvy 10.13savvy 10.14savvy AVURLAsset NSImage NSURL | Leave a comment

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular Posts

  • Numbersで選択範囲のセルのデータを取得して重複データを抽出
  • 文字種類変換(ASOC)
  • 【基礎】AppleScriptの実行を(操作により)中断する
  • Keynoteで全スライドのタイトルアイテムの高さを統一
  • 文字置換 v2
  • Numbersで指定の2つの書類のデータのdiffを取る
  • JPEG画像の破損チェック
  • 文字エンコーディングを自動判別してファイル読み込み v1.2.1
  • Bluetoothデバイスのバッテリー残量を取得 v3
  • iCloud Driveフォルダへのパスを求める
  • Evernoteがv10.0でElectronベースのWebブラウザ的なアプリに
  • Script Debugger v8 日本語対応中
  • iTunesライブラリ中のアートワークをすべてJPEGで書き出し v2
  • 指定フォルダ内のファイルのうち、指定拡張子リストに入っているものをすべて取得してフルパスを返す
  • mouseClickを用いて指定座標をクリック
  • macOS 10.15beta関連
  • 指定フォルダ以下のすべてのファイルとフォルダ名から絵文字を除去する v2
  • 指定文字コードでファイル書き出し(UTF-8)v2
  • 指定名称のアプリケーションをフルスクリーン表示
  • Numbersの表を回転

Tags

10.11savvy (1109) 10.12savvy (1249) 10.13savvy (1389) 10.14savvy (514) 10.15savvy (305) 11.0savvy (114) CotEditor (48) Finder (43) iTunes (25) Keynote (62) NSAlert (59) NSAlertSecondButtonReturn (16) NSArray (50) NSBitmapImageRep (20) NSBundle (19) NSButton (33) NSColor (48) NSDictionary (26) NSFileManager (23) NSFont (18) NSImage (40) NSJSONSerialization (21) NSMutableArray (61) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (55) NSScreen (30) NSScrollView (22) NSString (114) NSURL (93) NSURLRequest (22) NSUTF8StringEncoding (30) NSUUID (18) NSView (33) NSWindow (17) NSWorkspace (19) Numbers (42) Pages (16) Safari (34) System Events (16) WKUserContentController (20) WKUserScript (19) WKUserScriptInjectionTimeAtDocumentEnd (17) WKWebView (21) WKWebViewConfiguration (21)

カテゴリー

  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Bluetooth
  • boolean
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • History
  • How To
  • Icon
  • Image
  • Input Method
  • Internet
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Language
  • list
  • Locale
  • Machine Learning
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • shell script
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • 登録
  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC