Как можно оптимизировать скрипт?
> Вопрос такой: что можно было сделать лучше? Может где-то можно было проще?

Использовать wget.
-i, --input-file=FILE download URLs found in local or external FILE.
Всякие качалки (например Download Master) могут прям из буфера брать список файлов для закачки. Конретно DM (тока он сейчас есть) может также из файла импортировать список адресов для закачки.