Почему не могу получить информацию со стороннего сайта по ссылке?
Вот наглядная разница между программистом и жертвой видеоуроков.
Потребитель видеопродукции, умеющий только копипастить говнокод, но не умеющий  думать, может только пойти на тостер и жалобно проблеять "Объясниииите мне, почему мой код на моем сервере не работаеееет".
А программист понимает, что выяснить "с чем это может быть связано" может только он сам. А для этого надо писать не говнокод в одну строчку, а разделять операции между собой.
И проверять результат каждой.
Таким вот нехитрым способом можно конкретно узнать, "с чем связана проблема". 
У нас есть переменная $id['v'], про которую мы думаем, что в ней есть какой-то идентификатор.  Но проверить, есть ли там на самом деле что-то в этой переменной, должен дядя с тостера. 
У нас есть ключевой оператор file_get_contents(), который и должен возвращать какую-то инфу. Но мы эту инфу не проверяем. Мы, программисты дагестана, делаем такой узки-узки код, в один строчька, чтобы низки-низки пасадка биль! Патамучто настаящи джигит.
Поэтому результат file_get_contents мы не проверяем а сразу запихиваем в json_decode,  который и вернет null, если ему передать совсем не JSON. А если там не JSON, значит, наверное,  надо глазками посмотреть - ЧТО вернула file_get_contents. 
Но никто в видеокурсах не рассказал, что мало накопипастить говнокода, а надо еще и иногда проверять, что он возвращает
настройки сервера. Выведите ошибки.
например: 
error_reporting(E_ALL^E_NOTICE);
ini_set("display_errors",1);
на некоторых серверах запрещен запрос к удаленным серверам, тогда юзайте curl