Como eu crio uma lista de reprodução Genius no iTunes 10 a partir de um script?

2

Eu quero criar um script que inicie uma nova lista de reprodução Genius baseada na faixa atualmente em execução para usar no LaunchBar. Infelizmente, o iTunes não expõe nenhuma funcionalidade relacionada ao Genius ao AppleScript, o que dificulta as coisas.

Eu pesquisei na Web e encontrei várias soluções que envolvem encontrar manualmente o botão na interface do usuário do iTunes e invocar um evento de clique ( exemplo ), mas eles não funcionam no iTunes 10 e meu AppleScript-fu está longe de ser poderoso o suficiente para depurá-los.

Existe alguma maneira de iniciar uma lista de reprodução do Genius fora do aplicativo iTunes? Outros métodos, como fluxos de trabalho do Automator ou shell scripts, também seriam perfeitamente aceitáveis.

    
por Brant Bobby 08.09.2010 / 02:32

1 resposta

3

Após algumas experiências, acho que encontrei sua solução.

tell application "System Events"
-- click the genius button on the currently playing track at top
    click button 14 of window "iTunes" of application process "iTunes"
end tell

Com mais experimentação, descobri o seguinte:

  • Os botões 1 a 3 são os "semáforos" esquerda
  • Os botões 4-7 são a parte inferior dos botões à esquerda, adicionar lista de reprodução, reproduzir aleatoriamente, repetir arte finala próxima.
  • O botão 8 parece ser o gênio botão no canto inferior direito do tela, (fechar!) e vai trabalhar para a faixa atualmente selecionada. Eu presumir que você quer genial atualmente tocando ...
  • O botão 9 é o painel genial do lado direito.
  • O botão 10-12 é rebobinar, reproduzir / pausar, avançar.
  • O botão 13 é o equalizador.
  • O botão 14 é o botão genial! (Aquele que você quer)
  • O botão 15 é selecionado (e vai para) rastrear.
  • Os botões 16-19 são os vários "modos de exibição" botões
  • O botão 20 é um volume zero.
  • O botão 21 é o volume máximo.
  • O botão 22 é um erro!

É isso. Obrigado por trazer essa questão, essa percepção ajudará com várias ideias de script. :)

Editar:

OK, um pouco mais de pesquisa em dicionários me deu essa ideia:

tell application "System Events"
    set button_count to count every button of window "iTunes" of application process "iTunes"
    repeat with i from 1 to button_count
        set button_description to accessibility description of button i of window "iTunes" of application process "iTunes"
        if button_description is "genius" then
            set x to i
        end if
    end repeat
    if enabled of button x of window "iTunes" of application process "iTunes" then
        click button x of window "iTunes" of application process "iTunes"
    end if
end tell

O que ele faz é percorrer todos os botões da janela do iTunes e verificar a descrição de acessibilidade do botão. Os botões geniais com, sem surpresa, uma descrição de "gênio".

Em algumas visualizações, existem dois botões geniais, um para a música que está sendo reproduzida e outra para a música selecionada. O roteiro sempre pegará o último dos dois botões, que é a música que está tocando no momento. Portanto, este AppleScript verificará se o botão genius está habilitado e, em seguida, clica nele.

Se não houver uma música que esteja sendo reproduzida no momento, mas uma música selecionada, haverá um botão genius e ela será ativada e clicada. Se nenhuma música estiver tocando ou selecionada, o botão genius não será clicado.

Acho que esta é a funcionalidade que você quer! Deixe-me saber se funciona para você.

    
por 08.09.2010 / 03:16