XBMC может делать 1, 2 и 4. Просто добавьте файлы в библиотеку XBMC, а затем экспортируйте библиотеку в «отдельные файлы». подробнее см. здесь. Это создаст файлы .nfo на основе данных, которые XBMC соскабливает.
Оттуда вы можете написать скрипт, который переименовывает медиафайлы (и .nfo-файлы) на основе информации, содержащейся в файлах .nfo.