Search
Write a publication
Pull to refresh

Показ Show Notes на iPod'е

Reading time3 min
Views531
Does somebody know where show notes are? Наверное многие пользователи iPod'ов и слушатели подкастов в одном лице сталкивались с проблемой показа «шоунотов» (Show Notes). В одних подкастах они показываются, в других нет, в третьих иногда показываются, иногда нет. Проблема заключается в том, что iPod на самом деле не умеет показывать шоуноты, а показывает лирику (Lyrics) для треков. Соответственно там, где любимый подкастер позаботился добавить шоуноты в ID3 теги mp3 файла, мы довольны, а где не позаботился, нам приходиться лишь с досадой разводить ушами руками.
Либо добавлять ID3 теги самим. С несчастными пользователями iTunes для Windows я хотел бы поделиться скриптом, которым сам пользуюсь.

Скрипт


Написан на JScript и работает с iTunes через COM. Если вы хотите скачать описание этого SDK, то вам сюда.
Комментарии в коде, надеюсь, говорящие. Для показа прогресса запускается IE, в который пишется процент обработанных треков. Дело в том, что JScript не умеет работать с обычными win-формами. Смышленые пользователи могут переделать этот момент на вывод в консоль через WScript.Echo(), кому как удобнее.

  1. // run itunes
  2. var ITTrackKindFile  = 1;
  3. var  iTunesApp = WScript.CreateObject("iTunes.Application");
  4. var  mainLibrary = iTunesApp.LibraryPlaylist;
  5. var  tracks = mainLibrary.Tracks;
  6. var  numTracks = tracks.Count;
  7. var numProcessed = 0;
  8.  
  9. // create ie for showing progress
  10. var ie = WScript.CreateObject("InternetExplorer.Application", "ie_");
  11. ie.Navigate("about:blank");
  12. ie.ToolBar = 0;
  13. ie.StatusBar = 0;
  14. ie.Left = 30;
  15. ie.Top = 30;
  16. ie.Width = 400;
  17. ie.Height = 200;
  18. ie.Visible = 1;
  19.  
  20. // show progress
  21. ie.document.title = "Updating podcast show notes";
  22.  
  23. var updateProgress = function(percent) {
  24.   var textPercent = Math.round(percent * 100);
  25.   ie.document.body.innerHTML = "<b>" + ie.document.title + "</b><br/><i>Progress " + textPercent + "%</i>";
  26. }
  27.  
  28. // process tracks
  29. var i = numTracks;
  30. while (i != 0)
  31. {
  32.   var   currTrack = tracks.Item(i);
  33.   
  34.   // is this a file track and a podcast?
  35.   if (currTrack.Kind == ITTrackKindFile && currTrack.Podcast)
  36.   {
  37.     // are lyrics set? if not we'll write description in lyrics
  38.     try {
  39.       var lyrics = currTrack.Lyrics;
  40.       // write to lyrics only if lyrics are empty
  41.       if (lyrics.match(/^[\s\n\r\t]*$/g)) {
  42.         var descr2lyrics = currTrack.Name + "\n\n" + currTrack.LongDescription;
  43.         currTrack.Lyrics = descr2lyrics;
  44.         numProcessed++;
  45.       }
  46.     } catch (exception) {
  47.       // catching dead tracks
  48.     }
  49.   }
  50.  
  51.   i--;
  52.   updateProgress((numTracks-i) / numTracks);
  53. }
  54.  
  55. ie.document.body.innerHTML = numProcessed + " podcasts processed.<br/>All Done!";
* This source code was highlighted with Source Code Highlighter.

Скачать

Запускать скрипт можно двумя способами: просто два клика на файле, либо запуск из консоли:

wscript inotes.js



Недостатки


Конечно, скрипт не идеален. Самый большой недостаток, это необходимость каждый раз запускать его руками. Но так как ничего подобного я для Windows не нашел, решил запостить как есть, а смышленные пользователи хабра, возможно, помогут его улучшить. У меня в голове лишь идея следить за запуском iTunes через WMI, но перспектива все время висеть скрипту в памяти мне не очень нравится. К тому же, в таком случае нет достаточного контроля за процессом выполнения скрипта, поэтому меня и устраивает как есть.

Напоследок. Я понимаю почему подкастеры не оптимизируют свои творения для прослушивания на самых популярных плеерах, но почему этого не делают крупные подкаст-терминалы для меня загадка. «Эхо Москвы», один из самых больших и в тоже время неудобных подкаст-ресурсов на русском языке. Ну хотя бы теперь не бьет свои файлы на две части. А вырезать «Эхо Москвы // Передачи //» из начала каждого подкаста можно через Yahoo Pipes.

Также приглашаю читателей поделиться своими tips&tricks «подслушивания».

Mac


Что касается обладателей мака, решения ищутся поиском, на форумах я встречал плагины, но попробовать их не могу, поэтому ссылок давать не буду.
Tags:
Hubs:
Total votes 10: ↑9 and ↓1+8
Comments4

Articles