Rada pro Automator
Moderátoři: Alisczech, RadimSvidrnoch, emkei, MichalM.Mac, Streeter, Renik, zmiy, dandas
Rada pro Automator
Dobrý večer,
je možné nějak v aplikaci Automator (nebo nějaké jiné, podobné) vytvořit funkci/aplikaci, která by uměla určitým způsobem upravit textový soubor? Poslední dobou mi nejde v přehrávači MPlayerX přidat k videu titulky, pokud nejsou v Unicode 8 kódování, tudíž musím všechny ručně přepisovat a poslední dobou mě to přestává bavit.
Zde je popis kroků, které by to mělo dělat:
1) Otevřít soubor v TextEdit
2) Duplikovat
3) Uložit...
4) Umazat z názvu (kopie) na konci názvu
5) Změnit kódování na Unicode 8
6) Potvrdit uložení
Je možné něco takového vytvořit? S Automatorem jsem nikdy nedělal, tak netuším jaké jsou jeho možnosti.
Předem děkuji za odpovědi
je možné nějak v aplikaci Automator (nebo nějaké jiné, podobné) vytvořit funkci/aplikaci, která by uměla určitým způsobem upravit textový soubor? Poslední dobou mi nejde v přehrávači MPlayerX přidat k videu titulky, pokud nejsou v Unicode 8 kódování, tudíž musím všechny ručně přepisovat a poslední dobou mě to přestává bavit.
Zde je popis kroků, které by to mělo dělat:
1) Otevřít soubor v TextEdit
2) Duplikovat
3) Uložit...
4) Umazat z názvu (kopie) na konci názvu
5) Změnit kódování na Unicode 8
6) Potvrdit uložení
Je možné něco takového vytvořit? S Automatorem jsem nikdy nedělal, tak netuším jaké jsou jeho možnosti.
Předem děkuji za odpovědi
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
- MichalM.Mac
- Příspěvky: 3342
- Registrován: 30 črc 2012 11:03
- Kontaktovat uživatele:
Re: Rada pro Automator
Placená aplikace Subtitles.app na automatické stažení titulků umí konvertovat rovnou po stažení. Doporučuji.
Mam na to vyrobený shell skript, který jsem dal do automatoru.
Jako argumenty to bere buď přímo soubory titulků nebo složky, ve kterých je má vyhledávat.
Případně to můžeš spouštět z terminálu.
Mam na to vyrobený shell skript, který jsem dal do automatoru.
Jako argumenty to bere buď přímo soubory titulků nebo složky, ve kterých je má vyhledávat.
Kód: Vybrat vše
#!/bin/bash
# Author: MichalM.Mac
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Config
export ENCODING_FROM='CP1250'
export ENCODING_TO='UTF-8'
SUB_EXTENSION='.srt'
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
error_printer() {
echo "$@" 1>&2;
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
convert_sub_encoding(){
if file --mime-encoding "$1" | grep -iq "$ENCODING_TO"; then
error_printer "Error: File $1 is alredy encoded in $ENCODING_TO"
return
fi
mv "$1" "${1}_temp"
iconv -f "$ENCODING_FROM" -t "$ENCODING_TO" "${1}_temp" > "$1" && rm "${1}_temp"
}
find_subs(){
export -f error_printer
export -f convert_sub_encoding
find "$1" -name "*${SUB_EXTENSION}" -exec bash -c 'convert_sub_encoding "$0"' {} \;
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Main Body
if [ $# -eq 0 ]; then
echo "Error: No Aruments specified -> Nothing to do."
fi
# Postupné zpracování všech dodaných parametrů
while [ $# -gt 0 ]
do
if [ -d "$1" ]; then
find_subs "$1"
elif [ -f "$1" ]; then
convert_sub_encoding "$1"
else
error_printer "Error: $1 is not valid file or directory"
fi
shift
done
Re: Rada pro Automator
Děkuji za tip na aplikaci, ale raději si vybírám titulky sám, přece jenom jsou tady kvalitnější a méně kvalitní překladatelé..
Děkuji za kód, jen bych potřeboval trochu poradit, nasměrovat, co s ním mám dělat. Jak jsem psal výše, s Automatorem jsem nikdy nedělal..
Děkuji za kód, jen bych potřeboval trochu poradit, nasměrovat, co s ním mám dělat. Jak jsem psal výše, s Automatorem jsem nikdy nedělal..
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
- MichalM.Mac
- Příspěvky: 3342
- Registrován: 30 črc 2012 11:03
- Kontaktovat uživatele:
Re: Rada pro Automator
Vytvoř si workflow podle obrázku. Podstatné je, aby Akce, která spouští kód (Run Shell script), dostala na vstup soubory.
Pokud to bude obyčejné workflow, budeš tam potřebovat něco jako Ask for Finder Items.
V mém případě jde o Service workflow (služba), které spustím tak, že ve Finderu označím soubor(y), kliknu pravým tlačítkem myši -> Services -> UTFySubs (moje služba z Automatoru).
Přidávám ještě příklad pro Folder Action, kdy se skript spouští na všechny nově připadané soubory ve specifikované složce. Ty dvě filtrovací akce jsou tam asi trochu navíc, když je to ošetřeno ve skriptu, ale pro jistotu proč ne.
Pokud to bude obyčejné workflow, budeš tam potřebovat něco jako Ask for Finder Items.
V mém případě jde o Service workflow (služba), které spustím tak, že ve Finderu označím soubor(y), kliknu pravým tlačítkem myši -> Services -> UTFySubs (moje služba z Automatoru).
Přidávám ještě příklad pro Folder Action, kdy se skript spouští na všechny nově připadané soubory ve specifikované složce. Ty dvě filtrovací akce jsou tam asi trochu navíc, když je to ošetřeno ve skriptu, ale pro jistotu proč ne.
Re: Rada pro Automator
Super děkuji moc. Moje první použití Automatoru bylo úspěšné a titulky se převedou dvěma kliknutími
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
Re: Rada pro Automator
Za 22$ se mi to nechce kupovatMichalM.Mac píše:Placená aplikace Subtitles.app na automatické stažení titulků umí konvertovat rovnou po stažení. Doporučuji.
Macbook Air 2014, 4GB RAM, 128GB SSD, i5 - macOS Sierra
Apple iPhone 6S Plus 16GB - iOS 10
iPhone 4 16GB White - iOS 7.1.2
Beats SOLO 2 Wireless
Apple Watch Gold
Křemíkové nebe:
iPad 2 16GB
iPhone 5 16GB
Apple iPhone 6S Plus 16GB - iOS 10
iPhone 4 16GB White - iOS 7.1.2
Beats SOLO 2 Wireless
Apple Watch Gold
Křemíkové nebe:
iPad 2 16GB
iPhone 5 16GB
Re: Rada pro Automator
Tohle nechápu. Pokud to dělá co potřebujete tak 22 USD není tak moc.PatkaJR píše:
Za 22$ se mi to nechce kupovat
Re: Rada pro Automator
Vyřešil jsem to jinak. Nainstaloval jsem si rozšíření do VLC na stahování titulků a zdarma.
Macbook Air 2014, 4GB RAM, 128GB SSD, i5 - macOS Sierra
Apple iPhone 6S Plus 16GB - iOS 10
iPhone 4 16GB White - iOS 7.1.2
Beats SOLO 2 Wireless
Apple Watch Gold
Křemíkové nebe:
iPad 2 16GB
iPhone 5 16GB
Apple iPhone 6S Plus 16GB - iOS 10
iPhone 4 16GB White - iOS 7.1.2
Beats SOLO 2 Wireless
Apple Watch Gold
Křemíkové nebe:
iPad 2 16GB
iPhone 5 16GB
- MichalM.Mac
- Příspěvky: 3342
- Registrován: 30 črc 2012 11:03
- Kontaktovat uživatele:
Re: Rada pro Automator
Dobré pro tebe. Co třeba zmínit, jak se rozšíření jmenuje?
Re: Rada pro Automator
Macbook Air 2014, 4GB RAM, 128GB SSD, i5 - macOS Sierra
Apple iPhone 6S Plus 16GB - iOS 10
iPhone 4 16GB White - iOS 7.1.2
Beats SOLO 2 Wireless
Apple Watch Gold
Křemíkové nebe:
iPad 2 16GB
iPhone 5 16GB
Apple iPhone 6S Plus 16GB - iOS 10
iPhone 4 16GB White - iOS 7.1.2
Beats SOLO 2 Wireless
Apple Watch Gold
Křemíkové nebe:
iPad 2 16GB
iPhone 5 16GB
Re: Rada pro Automator
Ahoj, zkusím to tady po dlouhý době oživit. Přešel jsem na nový Mac a nedaří se mi v Automatoru vytvořit tohle workflow. Zkopíroval jsem kód od Michala, uložil jako Quick Action, služba se mi zobrazí při kliku pravým tlačítkem na soubor s titulky, něco asi proběhne, vyskočí mi notifikace, že se titulky převedly, ale se souborem jako takovým se nic nestane.
Nevíte někdo prosím, kde by mohl být problém? Je možné, že by se něco změnilo v OS Big Sur, že by shell skript najednou nefungoval?
Nevíte někdo prosím, kde by mohl být problém? Je možné, že by se něco změnilo v OS Big Sur, že by shell skript najednou nefungoval?
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
Re: Rada pro Automator
Vyřešeno. Smazal jsem všechno kromě samotného shell skriptu s Michalovým kódem a notifikace na konci a už to funguje. Z nějakého důvodu se tomu najednou přestalo líbit to filtrování na začátku.
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
Re: Rada pro Automator
Ahoj, zkusím to tady ještě s jedním dotazem. Poslední dobou se začalo v titulcích objevovat {\an8} což by mělo zobrazit titulky v horní straně obrazovky, ale některé přehrávače si s tím neví rady a celý řádek s titulky to vynechá. Potřeboval bych tedy nějak do automatoru přidat funkci "najít a nahradit". Použil jsem AppleScript viz níže, ale zasekne se to na parametru udávajícím vyhledávaný string "{\an8}" a vyskočí chyba "Syntaktická chyba. Očekáváno: „"“, ale nalezeno: neznámý token." Umíte mi někdo prosím poradit, jak skript opravit, aby fungoval?
Kód: Vybrat vše
use framework "Foundation"
use scripting additions
property NSString : a reference to current application's NSString
set stringToFind to "{\an8}"
set stringToReplace to ""
set theTextFile to (choose file of type {"public.plain-text"} default location (path to desktop))
set theContent to read theTextFile as text
set newContent to my replace_text(theContent, stringToFind, stringToReplace)
try
set fileRef to (open for access theTextFile with write permission)
set eof of fileRef to 0 # truncate file
write newContent to fileRef
close access fileRef
on error
close access fileRef
end try
return
on replace_text(atext, xfind, xreplace)
return ((NSString's stringWithString:atext)'s stringByReplacingOccurrencesOfString:xfind withString:xreplace) as text
end replace_text
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020