Skopiować wszystkie tagi z jednego pliku FLAC do drugiego?

9

Czy istnieje sposób, aby bezproblemowo skopiować wszystkie tagi z jednego pliku FLAC do innego przy użyciu narzędzia wiersza polecenia?

Naftuli Kay
źródło
1
Dlaczego tak wiele oficjalnej dokumentacji pomija tak cholernie wiele rzeczy, których użytkownicy bardzo potrzebują? Dobre pytanie.
killermist

Odpowiedzi:

14
metaflac --export-tags-to=- input.flac | \
metaflac --remove-all-tags --import-tags-from=- output.flac

Być może również potrzebuje tej --no-utf8-convertopcji.

Hhaamu
źródło
1
Szkoda, że ​​nie kopiuje też zdjęć… Trzeba zrobić tę samą sztuczkę z --export-picture-to i --import-picture-from
Adrien Clerc
importowanie zdjęć ze standardowego wejścia wydaje się nie działać dobrze, wygląda na to, że naprawdę chcesz wyeksportować zdjęcia do pliku, a następnie zaimportować je z powrotem z plików. Podczas próby importowania ze standardowego wejścia często kończy się to blokiem obrazu w pliku docelowym, ale zerowymi bajtami (brak danych obrazu)
Cheetah
5

Jeśli chcesz tylko tekstową część metadanych, powinieneś użyć metaflac z --no-utf8-convertopcją eksportowania i importowania, w przeciwnym razie znaki, które nie są w zestawie znaków twojej powłoki, ulegają zniekształceniu (np. Dla mnie japońskie metadane zostały bez niego zniekształcone):

metaflac --no-uft8-convert --export-tags-to=- src.flac | metaflac --import-tags-from=- --remove-all-tags dest.flac

nie mam pojęcia, dlaczego utf8 nie jest domyślny.

To nie jest kompletne. Jeśli chcesz również przenosić obrazy, najlepszym sposobem na skopiowanie wszystkich metadanych jest mały skrypt Pythona wykorzystujący mutagen .

Dave
źródło
+1 za zalecenie mutagenu. Tego używam, gdy muszę zrobić coś ważnego z tagami.
Naftuli Kay