Hola. ¿cómo están?
Me ayudan por favor con este Php, sé que para ustedes seguramente es demasiado simple (tenganme paciencia, estoy aprendiendo).
Mi idea es ... en primera instancia es tomar toda el shortcode de la URL de cada una de las fotos. Hasta ahora todo bien ... pero luego quiero usar el shortcode para ingresar cada una de esas url (osea de cada una de las fotos) y de allí tomar más información como por ejemplo el nombre (full_name , solo puse eso pero mi idea es tomar el full_name y 3 datos mas como la cantidad de followers y la diferencia horaria de post en post, pero bueno con el full_name por ahora vamos bien)
les dejo el codigo:
<?php
ini_set('max_execution_time', 0);
$baseUrl = "https://www.instagram.com/explore/tags/comida/?__a=1";
$url = $baseUrl;
$baseUrl2 = "https://www.instagram.com/p/";
$url2 = $baseUrl2;
while(1) {
$file = fopen("links.txt","a");
$json = (object) json_decode(file_get_contents($url));
foreach($json->{'graphql'}->hashtag->edge_hashtag_to_media->edges as $object_return){
var_dump($object_return->node->shortcode);
echo "{$object_return->node->shortcode}\n";
fwrite($file, $object_return->node->shortcode);
fwrite($file,"\n");
$url2 .= ($object_return->node->shortcode);
$url2 .= "/?__a=1";
echo "{$url2}\n";
$json2 = (object) json_decode(file_get_contents($url2));
foreach($json2->{'graphql'}->shortcode_media->owner->full_name as $a){
echo "{$a}\n";
fwrite($file,$a);
fwrite($file,"\n");
}
}
fclose($file);
// Deben modificar la variable $URL y acceder correctamente a ella
if(!$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->has_next_page) break;
$url = $baseUrl.'&max_id='.$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->end_cursor;
}
Saludosssssssssss espero me puedan ayudar :D
Hola @lemos.ema.
La primera correcion seia en esta linea
Citar$url2 .= ($object_return->node->shortcode);
ya que seguira agregando a la url el nuevo short code obtenido y no obtendras nuevos datos, por lo cual antes de concatenar el short code debes resetear la variable al valor inicial
https://www.instagram.com/p/.
Y segun https://www.php.net/json_decode (https://www.php.net/json_decode) le pasas el parametro true para obtener un array asociativo en lugar de un objeto
<?php
ini_set('max_execution_time', 0);
$baseUrl = "https://www.instagram.com/explore/tags/comida/?__a=1";
$url = $baseUrl;
$baseUrl2 = "https://www.instagram.com/p/";
$url2 = $baseUrl2;
while(1) {
$file = fopen("links.txt","a");
$json = (object) json_decode(file_get_contents($url));
foreach($json->{'graphql'}->hashtag->edge_hashtag_to_media->edges as $object_return){
var_dump($object_return->node->shortcode);
echo "{$object_return->node->shortcode}\n";
fwrite($file, $object_return->node->shortcode);
fwrite($file,"\n");
$url2 = $baseUrl2; //Aqui se resetea la variable
$url2 .= ($object_return->node->shortcode);
$url2 .= "/?__a=1";
echo "{$url2}\n";
$json2 = json_decode(file_get_contents($url2), true); //En lugar de obtener un objeto se obtiene un array asociativo
$full_name = $json2['graphql']['shortcode_media']['owner']['full_name']."\n";
$followed_by = $json2['graphql']['shortcode_media']['owner']['edge_followed_by']['count']."\n";
//Ahora full_name y followed_by contienen los datos deseados
fwrite($file, $full_name);
fwrite($file,"\n");
fwrite($file, $followed_by);
fwrite($file,"\n");
}
fclose($file);
// Deben modificar la variable $URL y acceder correctamente a ella
if(!$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->has_next_page) break;
$url = $baseUrl.'&max_id='.$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->end_cursor;
}
Te aconsejo que leas bien la documentacion ante cualquier error, posiblemente se te haga facil solucionar el problema, de lo contrario no dudes en preguntar.
Espero haber resuelto tus dudas, saludos.
Muchisimassssssssssssssssssssssss gracias !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :) voy aprendiendo de a poco
Para eso es el foro ayuda mutua ;)
@d3adly (https://underc0de.org/foro/index.php?action=profile;u=97561)
Si la verdad me vino genial , lo unico que no encuentro y lo estoy buscando es ... como almacenar un Booleano
Osea por ejemplo en $json2['graphql']['shortcode_media']['caption_is_edited'] figura como "False"
me gustaria almacenarlo $VerdoFalso= $json2['graphql']['shortcode_media']['caption_is_edited']
y que $VerdoFalso quede igual a "False" o "true" pero en string
@lemos.ema
Lo prodrias hacer comparando el valor:
if($json2['graphql']['shortcode_media']['caption_is_edited'] === "False"){
$IsEdited = false;
} else {
$IsEdited = true;
}
O en una sola linea
$IsEdited = ($json2['graphql']['shortcode_media']['caption_is_edited'] === "False") ? false : true;
veo que me falta mucho para llegar a tu nivel :( jajaja pero le pongo ganas y eso es lo que importa !
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
pero le pongo ganas y eso es lo que importa !
Asi es, eso es lo importante. Nadie nace sabiendolo todo, si practicas mucho adquiriras bastante conocimiento, no te desanimes o frustes cuanto algo no te funcione, en cambio es cuando mas debes echarle ganas, suerte ;D.
sabes que lo estaba probando , y pensé que funcionaba lo de False a True... pero siempre me lo guarda como valor "1" no importa si es verdadero o falso. Llegué bastante lejos jejeje pero no encuentro info sobre el tema, intente buscar y no molestar estos días que paso , pero no hay caso .
como veras en esta parte
$esteesvideo = ($json2['graphql']['shortcode_media']['is_video'] === "False") ? "a" : "b";
hasta intente cambiar false por a y true por b a ver si lo aguardaba así pero no hay caso a todas las variables las guarda como 1 en links.txt
de hecho lo intente también de la otra forma con la condición If pero tampoco .
por otro lado quiero contar los edges de $json2['graphql']['shortcode_media']['edge_sidecar_to_children']['edges'] y tampoco , siempre me toma como "1". Cual puede ser el problema?
La verdad que a veces esto desmotiva cuando uno no encuentra la solución y se traba :(
<?php
ini_set('max_execution_time', 0);
$baseUrl = "https://www.instagram.com/explore/tags/comida/?__a=1";
$url = $baseUrl;
$baseUrl2 = "https://www.instagram.com/p/";
$url2 = $baseUrl2;
while(1) {
$file = fopen("links.txt","a");
$json = (object) json_decode(file_get_contents($url));
foreach($json->{'graphql'}->hashtag->edge_hashtag_to_media->edges as $object_return){
var_dump($object_return->node->shortcode);
echo "{$object_return->node->shortcode}\n";
fwrite($file, $object_return->node->shortcode);
fwrite($file,"\n");
$url2 = $baseUrl2; //Aqui se resetea la variable
$url2 .= ($object_return->node->shortcode);
$url2 .= "/?__a=1";
echo "{$url2}\n";
$json2 = json_decode(file_get_contents($url2), true); //En lugar de obtener un objeto se obtiene un array asociativo
//medidas de la foto o video
$height = $json2['graphql']['shortcode_media']['dimensions']['height']."\n";
echo "{$height}\n";
$width = $json2['graphql']['shortcode_media']['dimensions']['width']."\n";
echo "{$width}\n";
//texto recordar que es una lista
$texto = $json2['graphql']['shortcode_media']['edge_media_to_caption']['edges']['0']['node']['text']."\n";
echo "{$texto}\n";
//cantidad de comentarios
$numeroComentarios = $json2['graphql']['shortcode_media']['edge_media_to_parent_comment']['count']."\n";
echo "{$numeroComentarios}\n";
//comentarios desabilitados
$desabilitadosComentarios = ($json2['graphql']['shortcode_media']['comments_disabled'] === "False") ? false : true;
echo "{$desabilitadosComentarios}\n";
$commenting_disabled_for_viewer = ($json2['graphql']['shortcode_media']['commenting_disabled_for_viewer'] === "False") ? false : true;
echo "{$commenting_disabled_for_viewer}\n";
//Hora y dia
$HorayDia = $json2['graphql']['shortcode_media']['taken_at_timestamp']."\n";
echo "{$HorayDia}\n";
//Cantidad de likes
$numLikes = $json2['graphql']['shortcode_media']['edge_media_preview_like']['count']."\n";
echo "{$numLikes}\n";
//Location
$locationid = $json2['graphql']['shortcode_media']['location']['id']."\n";
echo "{$locationid}\n";
$locationName = $json2['graphql']['shortcode_media']['location']['name']."\n";
echo "{$locationName}\n";
$locationAdress = $json2['graphql']['shortcode_media']['location']['address_json']."\n";
echo "{$locationAdress}\n";
//propietario
$propietarioID = $json2['graphql']['shortcode_media']['owner']['id']."\n";
echo "{$propietarioID}\n";
$propietarioVerificado = ($json2['graphql']['shortcode_media']['owner']['is_verified'] === "False") ? false : true;
echo "{$propietarioVerificado}\n";
$propietarioUsername = $json2['graphql']['shortcode_media']['owner']['username']."\n";
echo "{$propietarioUsername}\n";
$full_name = $json2['graphql']['shortcode_media']['owner']['full_name']."\n";
echo "{$full_name}\n";
$propietarioVerificado = ($json2['graphql']['shortcode_media']['owner']['is_private'] === "False") ? false : true;
echo "{$propietarioPrivado}\n";
$propietarioPosteos = $json2['graphql']['shortcode_media']['owner']['edge_owner_to_timeline_media']['count']."\n";
echo "{$propietarioPosteos}\n";
$propietarioCantSeguidores = $json2['graphql']['shortcode_media']['owner']['edge_followed_by']['count']."\n";
echo "{$propietarioCantSeguidores}\n";
//es un Anuncio?
$esanuncio = ($json2['graphql']['shortcode_media']['is_ad'] === "False") ? false : true;
echo "{$propietarioID}\n";
$is_video = ($json2['graphql']['shortcode_media']['is_video'] === "False") ? false : true;
$esteesvideo = ($json2['graphql']['shortcode_media']['is_video'] === "False") ? "a" : "b";
$imagenContenido = $json2['graphql']['shortcode_media']['accessibility_caption']."\n";
$carrusel = $json2['graphql']['shortcode_media']['edge_sidecar_to_children']['edges']."\n";
$cantidadFotosCarrusel = count($carrusel);
$cantidadFotosCarrusel2 = array_count_values($carrusel);
//si es video
if($json2['graphql']['shortcode_media']['is_video'] === "False"){
//contenido de la imagen (solo foto normal, carrusel no tiene)
} else {
//es un video o un IGT?
$tipodeVideo = $json2['graphql']['shortcode_media']['product_type']."\n";
echo "{$tipodeVideo}\n";
//titulo
$tituloVideo = $json2['graphql']['shortcode_media']['title']."\n";
echo "{$tituloVideo}\n";
//duracion
$DuracionVideo = $json2['graphql']['shortcode_media']['video_duration']."\n";
echo "{$DuracionVideo}\n";
//cantidad de visitas
$visitas = $json2['graphql']['shortcode_media']['video_view_count']."\n";
echo "{$visitas}\n";
}
//Ahora full_name y followed_by contienen los datos deseados
fwrite($file, "altura: ".$height);
fwrite($file,"\n");
fwrite($file, "ancho: ".$width);
fwrite($file,"\n");
fwrite($file, "texto: ".$texto);
fwrite($file,"\n");
fwrite($file, "fueEditado: ".$IsEdited);
fwrite($file,"\n");
fwrite($file, "NumdeComentarios: ".$numeroComentarios);
fwrite($file,"\n");
fwrite($file, "desabilitadosComentarios: ".$desabilitadosComentarios);
fwrite($file,"\n");
fwrite($file, "commenting_disabled_for_viewer: ".$commenting_disabled_for_viewer);
fwrite($file,"\n");
fwrite($file, "HorayDia: ".$HorayDia);
fwrite($file,"\n");
fwrite($file, "NumeroDeLikes: ".$numLikes);
fwrite($file,"\n");
fwrite($file, "locationid: ".$locationid);
fwrite($file,"\n");
fwrite($file, "locationName: ".$locationName);
fwrite($file,"\n");
fwrite($file, "locationAdress: ".$locationAdress);
fwrite($file,"\n");
fwrite($file, "propietarioID: ".$propietarioID);
fwrite($file,"\n");
fwrite($file, "propietarioVerificado: ".$propietarioVerificado);
fwrite($file,"\n");
fwrite($file, "propietarioUsername: ".$propietarioUsername);
fwrite($file,"\n");
fwrite($file, "full_name: ".$full_name);
fwrite($file,"\n");
fwrite($file, "propietarioPrivado: ".$propietarioPrivado);
fwrite($file,"\n");
fwrite($file, "propietarioPosteos: ".$propietarioPosteos);
fwrite($file,"\n");
fwrite($file, "propietarioCantSeguidores: ".$propietarioCantSeguidores);
fwrite($file,"\n");
fwrite($file, "esanuncio: ".$esanuncio);
fwrite($file,"\n");
//aca se divide entre videos o no
fwrite($file, "is_video: ".$is_video);
fwrite($file,"\n");
fwrite($file, "esteesvideo: ".$esteesvideo);
fwrite($file,"\n");
//primero las fotos y los carruseles
fwrite($file, "imagenContenido: ".$imagenContenido);
fwrite($file,"\n");
fwrite($file, "carrusel: ". $carrusel);
fwrite($file,"\n");
fwrite($file, "cantidadFotosCarrusel: ". $cantidadFotosCarrusel);
fwrite($file,"\n");
fwrite($file, "cantidadFotosCarrusel2: ". $cantidadFotosCarrusel2);
fwrite($file,"\n");
//ahora los videos
fwrite($file, "tipodeVideo: ".$tipodeVideo);
fwrite($file,"\n");
fwrite($file, "tituloVideo: ".$tituloVideo);
fwrite($file,"\n");
fwrite($file, "DuracionVideo: ".$DuracionVideo);
fwrite($file,"\n");
fwrite($file, "visitas: ".$visitas);
fwrite($file,"\n");
}
fclose($file);
// Deben modificar la variable $URL y acceder correctamente a ella
if(!$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->has_next_page) break;
$url = $baseUrl.'&max_id='.$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->end_cursor;
}
Hola @lemos.ema, paso a ayudarte un poco y disculpa si me equivoco respecto a entender tu duda porque estoy jugando un poco con el tiempo.
Analizando un poco tu código, y más específicamente tu inconveniente, es que estás comparando un valor con un tipo de dato booleano con un valor con un tipo de dato de cadena, usan el operador de triple igualdad "===", éste dará como resultado 'true' sí el valor y el tipo de dato a comparar son iguales. Básicamente es igual a su hermano, el operador de doble igualdad típico "==" pero no lo convierte a un tipo de dato válido al menos que sea válido.
Por ejemplo:
Abrímos un consola de php interactiva para ver mejor el resultado:
php -a
Y hay colocamos:
// Usemos primero el operador de doble igualdad
echo json_encode(1 == 1); // resultado: true
echo json_encode("1" == 1); // resultado: true
echo json_encode(1 == "1"); // Lo mismo de arriba
// Ahora usamos el operador de triple igualdad
echo json_encode(1 === 1); // resultado: true
echo json_encode("1" === 1); // resultado: false
echo json_encode(1 === "1"); // resultado: false
Nota #1: Uso la función "json_encode" para apreciar mejor el resultado, ya que si usamos un simple "echo" o "print" no se mostraría debído a que los resultados posibles serían 'true' y 'false'.
Nota #2: Menciono mucho operador de "triple igualdad" y "doble igualdad" es porque se usando triples y dobles signos de igualdad (=), pero en realidad se llaman por igual con una función diferente que ya la explicaré a continuación.
Como puedes apreciar en la primera sección todo da como resultado "true" en vez de "false", porque si se usa "==" en vez de "===" se convertirán (en caso de que se detecte) a tipos de datos válidos. O sea, que si tenemos "1" y usamos "==" se convertirá en un entero, por lo que si el otro valor a comparar es igual daría como resultado "true". Éso no pasaría con "===" ya que no lo convierte, pero aun luego de esa explicación te cito esto de la misma documentación:
CitarSi se compara un número con un string o la comparación implica strings numéricos, entonces cada string es convertido en un número y la comparación realizada numéricamente. Estas reglas también se aplican a la sentencia switch. La conversión de tipo no tiene lugar cuando la comparación es === o !== ya que esto involucra comparar el tipo así como el valor.
Fuente:
www.php.net/manual/es/language.operators.comparison.phpAh, además que estás colocando el primer carácter en una mayúcula "
False", hay que respetar mayúsculas y minúsculas, pero tranquilo, es sencillo de corregir ;D
~ DtxdF
Hola Lemos,
De una forma rápida, entiendo que quieres saber si es video o no. Pude ver en la respuesta de Instagram que te retorna valores booleanos pero en minúsculas. Lo único que deberías cambiar es el "False" por el "false".
<?php
ini_set('max_execution_time', 0);
$baseUrl = "https://www.instagram.com/explore/tags/comida/?__a=1";
$url = $baseUrl;
$baseUrl2 = "https://www.instagram.com/p/";
$url2 = $baseUrl2;
while(1) {
$file = fopen("links.txt","a");
$json = (object) json_decode(file_get_contents($url));
foreach($json->{'graphql'}->hashtag->edge_hashtag_to_media->edges as $object_return){
var_dump($object_return->node->shortcode);
echo "{$object_return->node->shortcode}\n";
fwrite($file, $object_return->node->shortcode);
fwrite($file,"\n");
$url2 = $baseUrl2; //Aqui se resetea la variable
$url2 .= ($object_return->node->shortcode);
$url2 .= "/?__a=1";
echo "{$url2}\n";
$json2 = json_decode(file_get_contents($url2), true); //En lugar de obtener un objeto se obtiene un array asociativo
//medidas de la foto o video
$height = $json2['graphql']['shortcode_media']['dimensions']['height']."\n";
echo "{$height}\n";
$width = $json2['graphql']['shortcode_media']['dimensions']['width']."\n";
echo "{$width}\n";
//texto recordar que es una lista
$texto = $json2['graphql']['shortcode_media']['edge_media_to_caption']['edges']['0']['node']['text']."\n";
echo "{$texto}\n";
//cantidad de comentarios
$numeroComentarios = $json2['graphql']['shortcode_media']['edge_media_to_parent_comment']['count']."\n";
echo "{$numeroComentarios}\n";
//comentarios desabilitados
$desabilitadosComentarios = ($json2['graphql']['shortcode_media']['comments_disabled'] === "False") ? false : true;
echo "{$desabilitadosComentarios}\n";
$commenting_disabled_for_viewer = ($json2['graphql']['shortcode_media']['commenting_disabled_for_viewer'] === "False") ? false : true;
echo "{$commenting_disabled_for_viewer}\n";
//Hora y dia
$HorayDia = $json2['graphql']['shortcode_media']['taken_at_timestamp']."\n";
echo "{$HorayDia}\n";
//Cantidad de likes
$numLikes = $json2['graphql']['shortcode_media']['edge_media_preview_like']['count']."\n";
echo "{$numLikes}\n";
//Location
$locationid = $json2['graphql']['shortcode_media']['location']['id']."\n";
echo "{$locationid}\n";
$locationName = $json2['graphql']['shortcode_media']['location']['name']."\n";
echo "{$locationName}\n";
$locationAdress = $json2['graphql']['shortcode_media']['location']['address_json']."\n";
echo "{$locationAdress}\n";
//propietario
$propietarioID = $json2['graphql']['shortcode_media']['owner']['id']."\n";
echo "{$propietarioID}\n";
$propietarioVerificado = ($json2['graphql']['shortcode_media']['owner']['is_verified'] === "False") ? false : true;
echo "{$propietarioVerificado}\n";
$propietarioUsername = $json2['graphql']['shortcode_media']['owner']['username']."\n";
echo "{$propietarioUsername}\n";
$full_name = $json2['graphql']['shortcode_media']['owner']['full_name']."\n";
echo "{$full_name}\n";
$propietarioVerificado = ($json2['graphql']['shortcode_media']['owner']['is_private'] === "False") ? false : true;
echo "{$propietarioPrivado}\n";
$propietarioPosteos = $json2['graphql']['shortcode_media']['owner']['edge_owner_to_timeline_media']['count']."\n";
echo "{$propietarioPosteos}\n";
$propietarioCantSeguidores = $json2['graphql']['shortcode_media']['owner']['edge_followed_by']['count']."\n";
echo "{$propietarioCantSeguidores}\n";
//es un Anuncio?
$esanuncio = ($json2['graphql']['shortcode_media']['is_ad'] === "False") ? false : true;
echo "{$propietarioID}\n";
$is_video = ($json2['graphql']['shortcode_media']['is_video'] === "false") ? false : true;
$esteesvideo = ($json2['graphql']['shortcode_media']['is_video'] === "false") ? "a" : "b";
$imagenContenido = $json2['graphql']['shortcode_media']['accessibility_caption']."\n";
$carrusel = $json2['graphql']['shortcode_media']['edge_sidecar_to_children']['edges']."\n";
$cantidadFotosCarrusel = count($carrusel);
$cantidadFotosCarrusel2 = array_count_values($carrusel);
//si es video
if($json2['graphql']['shortcode_media']['is_video'] === "false"){
//contenido de la imagen (solo foto normal, carrusel no tiene)
} else {
//es un video o un IGT?
$tipodeVideo = $json2['graphql']['shortcode_media']['product_type']."\n";
echo "{$tipodeVideo}\n";
//titulo
$tituloVideo = $json2['graphql']['shortcode_media']['title']."\n";
echo "{$tituloVideo}\n";
//duracion
$DuracionVideo = $json2['graphql']['shortcode_media']['video_duration']."\n";
echo "{$DuracionVideo}\n";
//cantidad de visitas
$visitas = $json2['graphql']['shortcode_media']['video_view_count']."\n";
echo "{$visitas}\n";
}
//Ahora full_name y followed_by contienen los datos deseados
fwrite($file, "altura: ".$height);
fwrite($file,"\n");
fwrite($file, "ancho: ".$width);
fwrite($file,"\n");
fwrite($file, "texto: ".$texto);
fwrite($file,"\n");
fwrite($file, "fueEditado: ".$IsEdited);
fwrite($file,"\n");
fwrite($file, "NumdeComentarios: ".$numeroComentarios);
fwrite($file,"\n");
fwrite($file, "desabilitadosComentarios: ".$desabilitadosComentarios);
fwrite($file,"\n");
fwrite($file, "commenting_disabled_for_viewer: ".$commenting_disabled_for_viewer);
fwrite($file,"\n");
fwrite($file, "HorayDia: ".$HorayDia);
fwrite($file,"\n");
fwrite($file, "NumeroDeLikes: ".$numLikes);
fwrite($file,"\n");
fwrite($file, "locationid: ".$locationid);
fwrite($file,"\n");
fwrite($file, "locationName: ".$locationName);
fwrite($file,"\n");
fwrite($file, "locationAdress: ".$locationAdress);
fwrite($file,"\n");
fwrite($file, "propietarioID: ".$propietarioID);
fwrite($file,"\n");
fwrite($file, "propietarioVerificado: ".$propietarioVerificado);
fwrite($file,"\n");
fwrite($file, "propietarioUsername: ".$propietarioUsername);
fwrite($file,"\n");
fwrite($file, "full_name: ".$full_name);
fwrite($file,"\n");
fwrite($file, "propietarioPrivado: ".$propietarioPrivado);
fwrite($file,"\n");
fwrite($file, "propietarioPosteos: ".$propietarioPosteos);
fwrite($file,"\n");
fwrite($file, "propietarioCantSeguidores: ".$propietarioCantSeguidores);
fwrite($file,"\n");
fwrite($file, "esanuncio: ".$esanuncio);
fwrite($file,"\n");
//aca se divide entre videos o no
fwrite($file, "is_video: ".$is_video);
fwrite($file,"\n");
fwrite($file, "esteesvideo: ".$esteesvideo);
fwrite($file,"\n");
//primero las fotos y los carruseles
fwrite($file, "imagenContenido: ".$imagenContenido);
fwrite($file,"\n");
fwrite($file, "carrusel: ". $carrusel);
fwrite($file,"\n");
fwrite($file, "cantidadFotosCarrusel: ". $cantidadFotosCarrusel);
fwrite($file,"\n");
fwrite($file, "cantidadFotosCarrusel2: ". $cantidadFotosCarrusel2);
fwrite($file,"\n");
//ahora los videos
fwrite($file, "tipodeVideo: ".$tipodeVideo);
fwrite($file,"\n");
fwrite($file, "tituloVideo: ".$tituloVideo);
fwrite($file,"\n");
fwrite($file, "DuracionVideo: ".$DuracionVideo);
fwrite($file,"\n");
fwrite($file, "visitas: ".$visitas);
fwrite($file,"\n");
}
fclose($file);
// Deben modificar la variable $URL y acceder correctamente a ella
if(!$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->has_next_page) break;
$url = $baseUrl.'&max_id='.$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->end_cursor;
}
Me explico, la línea de código de "$json2['graphql']['shortcode_media']['is_video'] " te retorna "false" o "true", pero tú estabas comparando "False". Ahí estaba el error.
Te recomiendo que nombres las variables de una forma más entendible y así irás haciendo tu código más limpio.
Un saludo.