Ваш код должен быть в порядке, за исключением того, что он будет выводить одно и то же независимо от того, на каком элементе остановится. Таким образом, вы не сможете сказать, какой предмет он нашел.
Это потому, что $vid
не изменяется вашим циклом, а все остальное, что вы выводите, жестко запрограммировано.
Я думаю, что, возможно, вы захотите использовать $id
вместо $vid
в выходных данных, чтобы получить идентификатор конкретного элемента, найденного по коду:
echo 'https://m.youtube.com/watch?v='.$id;
Вот живая демонстрация, показывающая результат этого: http://sandbox.onlinephpfunctions.com/code/9c1dc33caef02126f2f94cf5502023da83159bc1