Archive for the 'XAttribute' Category

2017/10/27 OTMXAttributeでxattrを削除する

オープンソースのプログラム「OTMXAttribute」(By Ryan Coffman)をフレームワーク化したXAttribute.frameworkを呼び出してファイルの拡張属性(xattr)を削除するAppleScriptです。

実際に本Scriptを試すためには、「XAttribute.framework」を~/Library/Frameworksに自己責任でインストールしてください。

–> Download Framework Binary

なにもObjective-Cのプログラムを呼び出さなくても、shell scriptのxattrコマンドを呼び出すだけでもよかったわけですが、あくまで実験です。

用途は、YouTubeからダウンロードした映像ファイルから音声部分のみを抽出する際にXattr属性がついていると、(ランタイム環境によっては)実行が阻害されるようだったので、処理途中でXattr属性を削除することを試してみた、というものです。

さまざまな部品を組み込むことで、Script Menuから呼び出したAppleScriptで、Safariで表示中のYouTubeのムービーをダウンロードして音声部分のみを抽出する処理を呼び出せているので、よいのではないかと。

scriptmenu.png
▲SafariのScript Menuに登録してあるYouTube系Script

AppleScript名:OTMXAttributeでxattrを削除する
– Created 2017-10-27 by Takaaki Naganoya
– 2017 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use framework “XAttribute” –https://github.com/rylio/OTMXAttribute
–http://piyocast.com/as/archives/4933

set aFile to POSIX path of (choose file)
set xRes to removeXAttrFromFile(aFile, “com.apple.quarantine”)

on removeXAttrFromFile(aFile, anXattr)
  –Get Xattr String
  
set anAttribute to (current application’s OTMXAttribute’s stringAttributeAtPath:aFile |name|:anXattr |error|:(missing value))
  
if anAttribute = missing value then return true –There is no use to remove xattr
  
  
–Remove Xattr
  
set xRes to (current application’s OTMXAttribute’s removeAttributeAtPath:aFile |name|:anXattr |error|:(missing value))
  
if xRes = missing value then return false
  
return (xRes as boolean)
end removeXAttrFromFile

★Click Here to Open This Script