Applescript Pergunta - adicionar faixas para reprodução
-
22-08-2019 - |
Pergunta
Sério, eu estou envergonhado de ainda estar se perguntando isso.
Eu tenho um AppleScript que é suposto para construir uma lista de reprodução de um monte de álbuns inteiros. Tudo funciona bem, exceto para realmente adicionar as faixas à lista. Aqui está o código relevante:
repeat with theAlbum in randAlbums
set these_tracks to (tracks of library playlist 1 whose album is theAlbum)
repeat with the_track in these_tracks
add the_track to playlist thePlaylist (* doesn't work *)
end repeat
end repeat
O erro que eu vejo é "iTunes tenho um erro:. Um tipo de descritor de incompatibilidade ocorreu"
randAlbums é uma lista de nomes de álbuns únicas e thePlaylist é uma lista de reprodução que é criado no início do script.
Eu estive batendo a cabeça contra isso por que se sente como uma semana e eu não tenho sido capaz de descobrir isso. Agradecemos antecipadamente por qualquer ajuda que você pode oferecer:)
Solução
Duplicate é o comando que você deseja. Tente isto:
repeat with theAlbum in randAlbums
duplicate (tracks of library playlist 1 whose album is theAlbum) to thePlaylist
end repeat
Dentro do iTunes interface de add
é usado para adicionar uma nova faixa para a biblioteca iTunes usando um caminho de sistema de arquivos, enquanto duplicate
é usado para colocar uma referência a uma faixa existente em uma lista de reprodução.
Quando o comando add é usado iTunes acabará por descobrir que a pista já faz parte da biblioteca e fazer o que quiser, mas não antes de ele lê os metadados do arquivo, horários de TI para recuperação arte do álbum, etc. Tudo isso equivale a uma operação muito lenta, então se você estiver usando-o dentro de um loop para um grande número de faixas iTunes vai abrandar para um rastreamento.
Duplicate realiza uma pesquisa de banco de dados nativo e adiciona os resultados para a lista de reprodução de uma só vez, por isso é muito rápido.
Outras dicas
Tente alterar essa linha para:
add (get location of the_track) to playlist thePlaylist
ou, se thePlaylist
é já uma referência playlist (em vez de apenas o nome de seqüência de uma lista de reprodução):
add (get location of the_track) to thePlaylist
Applescript é realmente estranho ... mas o checkout os scripts aqui dougscripts.com
Parece que ele usa duplicado e não Adicionar ao adicionar a uma playlist. Eu estou olhando para a Uma Canção de cada roteiro
Hmmm ... que tal?
add (a reference to the_track) to playlist thePlaylist
Tente:
copy the_track to end of playlist thePlaylist
em seu lugar.