logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
Footroll  
#1 Posted : Saturday, November 30, 2024 12:03:27 AM(UTC)
Footroll

Rank: Newbie

Groups: Registered
Joined: 11/29/2024(UTC)
Posts: 3
Poland

I'm a football streamer looking for a way to automatically import live match data, including team lineups and stats, into my streams. Currently, I manually manage the scoreboard and time (no problem with that, works great), but it would be great to have the other information populate in real-time.

Does anyone know of any solutions or tools that can help me achieve this? Any suggestions would be greatly appreciated.

Thanks in advance!
ESNTV  
#2 Posted : Saturday, November 30, 2024 12:20:27 AM(UTC)
ESNTV

Rank: Member

Groups: Registered
Joined: 4/13/2017(UTC)
Posts: 12
Man
Poland
Location: Poland

Was thanked: 1 time(s) in 1 post(s)
Import live data - What type of data is this? JSON?
Footroll  
#3 Posted : Saturday, November 30, 2024 12:31:08 AM(UTC)
Footroll

Rank: Newbie

Groups: Registered
Joined: 11/29/2024(UTC)
Posts: 3
Poland

Thanks for your reply!

Yes, it's in JSON format. Are there any tutorials on how can I import this type of live data and create graphics dedicated to it?
ESNTV  
#4 Posted : Saturday, November 30, 2024 12:35:03 AM(UTC)
ESNTV

Rank: Member

Groups: Registered
Joined: 4/13/2017(UTC)
Posts: 12
Man
Poland
Location: Poland

Was thanked: 1 time(s) in 1 post(s)
You can try to put JSON data to data source manager in vmix, but for sure that data need to be parsed first. In my opinion python / node app for grabbing data and parsing to vmix readable json form.

You can paste a sample of your data here and I'll see if I can help you in a simple way :)


some links for you:



Footroll  
#5 Posted : Saturday, November 30, 2024 12:42:46 AM(UTC)
Footroll

Rank: Newbie

Groups: Registered
Joined: 11/29/2024(UTC)
Posts: 3
Poland

So I it's not as simple as I hoped for. :D To be honest, if there's a lot of work with it, I can pay for helping me with this, as I have no idea how to proceed.

That's how the code looks like as an example on their website.

{
"commentaries":{
"sport":"soccer",
"tournament":{
"id":"1056",
"match":{
"coaches":null,
"commentaries":null,
"date":"18.12.2022",
"formatted_date":"18.12.2022",
"id":"3780027",
"localteam":{
"et_score":"1",
"ft_score":"2",
"goals":"3",
"ht_score":"2",
"id":"5886",
"name":"Argentina",
"pen_score":"4"
},
"matchinfo":{
"attendance":{
"name":"88966"
},
"referee":{
"name":"Szymon Marciniak, Poland"
},
"stadium":{
"name":"Lusail Iconic Stadium, Lusail"
},
"time":{
"addedTime_period1":"7",
"addedTime_period2":"8",
"name":"15:00"
}
},
"player_stats":{
"localteam":{
"player":[
{
"acc_crosses":"",
"aerials_won":"",
"assists":"",
"big_chance_created":"",
"big_chance_missed":"",
"blocks":"",
"clearance_offine":"",
"clearances":"2",
"dispossesed":"",
"dribbleAttempts":"",
"dribbledPast":"",
"dribbleSucc":"",
"duelsTotal":"",
"duelsWon":"",
"error_lead_to_goal":"",
"fouls_commited":"",
"fouls_drawn":"",
"goals":"",
"goals_conceded":"3",
"good_high_claim":"1",
"hit_woodwork":"",
"id":"102587",
"interceptions":"",
"isCaptain":"",
"isSubst":"False",
"keyPasses":"",
"lastman_tackle":"",
"minus_goals":"3",
"minutes_played":"120",
"name":"Emiliano Martínez",
"num":"23",
"offsides":"",
"passes":"25",
"passes_acc":"9",
"pen_committed":"",
"pen_miss":"0",
"pen_save":"0",
"pen_score":"0",
"pen_won":"",
"pos":"G",
"punches":"1",
"rating":"6.3",
"redcards":"0",
"saves":"2",
"savesInsideBox":"2",
"shots_on_goal":"",
"shots_total":"",
"tackles":"",
"total_crosses":"",
"yellowcards":"1"
},
{
"acc_crosses":"",
"aerials_won":"",
"assists":"",
"big_chance_created":"",
"big_chance_missed":"",
"blocks":"",
"clearance_offine":"",
"clearances":"1",
"dispossesed":"",
"dribbleAttempts":"",
"dribbledPast":"1",
"dribbleSucc":"",
"duelsTotal":"4",
"duelsWon":"1",
"error_lead_to_goal":"",
"fouls_commited":"",
"fouls_drawn":"",
"goals":"",
"goals_conceded":"0",
"good_high_claim":"",
"hit_woodwork":"",
"id":"432521",
"interceptions":"1",
"isCaptain":"",
"isSubst":"False",
"keyPasses":"",
"lastman_tackle":"",
"minus_goals":"2",
"minutes_played":"90",
"name":"Nahuel Molina",
"num":"26",
"offsides":"",
"passes":"41",
"passes_acc":"27",
"pen_committed":"",
"pen_miss":"0",
"pen_save":"",
"pen_score":"0",
"pen_won":"",
"pos":"D",
"punches":"",
"rating":"6.2",
"redcards":"0",
"saves":"",
"savesInsideBox":"",
"shots_on_goal":"",
"shots_total":"",
"tackles":"1",
"total_crosses":"1",
"yellowcards":"0"
},
{
"acc_crosses":"",
"aerials_won":"2",
"assists":"",
"big_chance_created":"",
"big_chance_missed":"",
"blocks":"",
"clearance_offine":"",
"clearances":"9",
"dispossesed":"",
"dribbleAttempts":"",
"dribbledPast":"2",
"dribbleSucc":"",
"duelsTotal":"10",
"duelsWon":"3",
"error_lead_to_goal":"",
"fouls_commited":"3",
"fouls_drawn":"1",
"goals":"",
"goals_conceded":"0",
"good_high_claim":"",
"hit_woodwork":"",
"id":"433963",
"interceptions":"2",
"isCaptain":"",
"isSubst":"False",
"keyPasses":"",
"lastman_tackle":"",
"minus_goals":"3",
"minutes_played":"120",
"name":"Cristian Romero",
"num":"13",
"offsides":"",
"passes":"70",
"passes_acc":"60",
"pen_committed":"",
"pen_miss":"0",
"pen_save":"",
"pen_score":"0",
"pen_won":"",
"pos":"D",
"punches":"",
"rating":"6.5",
"redcards":"0",
"saves":"",
"savesInsideBox":"",
"shots_on_goal":"",
"shots_total":"",
"tackles":"",
"total_crosses":"",
"yellowcards":"0"
},
{
"acc_crosses":"",
"aerials_won":"5",
"assists":"",
"big_chance_created":"",
"big_chance_missed":"1",
"blocks":"",
"clearance_offine":"",
"clearances":"",
"dispossesed":"3",
"dribbleAttempts":"3",
"dribbledPast":"",
"dribbleSucc":"1",
"duelsTotal":"22",
"duelsWon":"13",
"error_lead_to_goal":"",
"fouls_commited":"3",
"fouls_drawn":"4",
"goals":"",
"goals_conceded":"0",
"good_high_claim":"",
"hit_woodwork":"",
"id":"447098",
"interceptions":"",
"isCaptain":"",
"isSubst":"True",
"keyPasses":"",
"lastman_tackle":"",
"minus_goals":"1",
"minutes_played":"79",
"name":"Randal Kolo Muani",
"num":"12",
"offsides":"",
"passes":"18",
"passes_acc":"12",
"pen_committed":"",
"pen_miss":"0",
"pen_save":"",
"pen_score":"0",
"pen_won":"1",
"pos":"F",
"punches":"",
"rating":"7.3",
"redcards":"0",
"saves":"",
"savesInsideBox":"",
"shots_on_goal":"1",
"shots_total":"2",
"tackles":"3",
"total_crosses":"1",
"yellowcards":"0"
},
{
"acc_crosses":"",
"aerials_won":"4",
"assists":"1",
"big_chance_created":"",
"big_chance_missed":"",
"blocks":"",
"clearance_offine":"",
"clearances":"1",
"dispossesed":"",
"dribbleAttempts":"5",
"dribbledPast":"",
"dribbleSucc":"3",
"duelsTotal":"13",
"duelsWon":"9",
"error_lead_to_goal":"",
"fouls_commited":"2",
"fouls_drawn":"1",
"goals":"",
"goals_conceded":"0",
"good_high_claim":"",
"hit_woodwork":"",
"id":"334250",
"interceptions":"",
"isCaptain":"",
"isSubst":"True",
"keyPasses":"1",
"lastman_tackle":"",
"minus_goals":"1",
"minutes_played":"79",
"name":"Marcus Thuram",
"num":"26",
"offsides":"1",
"passes":"19",
"passes_acc":"12",
"pen_committed":"",
"pen_miss":"0",
"pen_save":"",
"pen_score":"0",
"pen_won":"",
"pos":"F",
"punches":"",
"rating":"7.2",
"redcards":"0",
"saves":"",
"savesInsideBox":"",
"shots_on_goal":"",
"shots_total":"",
"tackles":"1",
"total_crosses":"1",
"yellowcards":"1"
}
]
}
},
"static_id":"3272752",
"stats":{
"localteam":{
"corners":{
"total":"6",
"total_h1":"2",
"total_h2":"2"
},
"fouls":{
"total":"26"
},
"offsides":{
"total":"4",
"total_h1":"3",
"total_h2":"0"
},
"passes":{
"accurate":"525",
"accurate_h1":"256",
"accurate_h2":"148",
"pct":"",
"pct_h1":"",
"pct_h2":"",
"total":"635",
"total_h1":"291",
"total_h2":"200"
},
"possestiontime":{
"total":"54%",
"total_h1":"59%",
"total_h2":"45%"
},
"redcards":{
"total":"",
"total_h1":"",
"total_h2":""
},
"saves":{
"total":"2",
"total_h1":"2",
"total_h2":"2"
},
"shots":{
"blocked":"3",
"blocked_h1":"0",
"blocked_h2":"1",
"insidebox":"12",
"insidebox_h1":"3",
"insidebox_h2":"3",
"offgoal":"7",
"offgoal_h1":"3",
"offgoal_h2":"1",
"ongoal":"10",
"ongoal_h1":"3",
"ongoal_h2":"4",
"outsidebox":"8",
"outsidebox_h1":"3",
"outsidebox_h2":"3",
"total":"20",
"total_h1":"6",
"total_h2":"6"
},
"yellowcards":{
"total":"5",
"total_h1":"5",
"total_h2":"5"
}
}
},
"time":"15:00",
"timer":"",
"visitorteam":{
"et_score":"1",
"ft_score":"2",
"goals":"3",
"ht_score":"0",
"id":"9815",
"name":"France",
"pen_score":"2"
}
},
"name":"FIFA Wolrd Cup"
},
"updated":"19.12.2022 00:00:25"
}
}
ESNTV  
#6 Posted : Saturday, November 30, 2024 1:06:00 AM(UTC)
ESNTV

Rank: Member

Groups: Registered
Joined: 4/13/2017(UTC)
Posts: 12
Man
Poland
Location: Poland

Was thanked: 1 time(s) in 1 post(s)
So it's kinda clean JSON ofc you can parse to remove not used data but here is preview


Zrzut ekranu 2024-11-29 160337.png (42kb) downloaded 13 time(s).

and here is your json in object ready to read in vmix https://pastebin.com/3DCYkc76
doggy  
#7 Posted : Saturday, November 30, 2024 4:57:49 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,243
Belgium
Location: Belgium

Thanks: 294 times
Was thanked: 960 time(s) in 794 post(s)
vMix JSON Datasource will only grab the player info (First array)
if you want to retrieve the data outside of that array you will need to use an external application to grab it an send to a title, or can convert to an xml so one can pull anything within the file through the datasource with the correct xpath
ESNTV  
#8 Posted : Saturday, November 30, 2024 5:04:06 AM(UTC)
ESNTV

Rank: Member

Groups: Registered
Joined: 4/13/2017(UTC)
Posts: 12
Man
Poland
Location: Poland

Was thanked: 1 time(s) in 1 post(s)
Originally Posted by: doggy Go to Quoted Post
vMix JSON Datasource will only grab the player info (First array)
if you want to retrieve the data outside of that array you will need to use an external application to grab it an send to a title, or can convert to an xml so one can pull anything within the file through the datasource with the correct xpath




What are you talking about. If you parse data correctly according to vmix data source engine you have all data :)


Zrzut ekranu 2024-11-29 200313.png (15kb) downloaded 0 time(s).
doggy  
#9 Posted : Saturday, November 30, 2024 5:39:51 AM(UTC)
doggy

Rank: Advanced Member

Groups: Registered
Joined: 12/27/2012(UTC)
Posts: 5,243
Belgium
Location: Belgium

Thanks: 294 times
Was thanked: 960 time(s) in 794 post(s)
Originally Posted by: ESNTV Go to Quoted Post
Originally Posted by: doggy Go to Quoted Post
vMix JSON Datasource will only grab the player info (First array)
if you want to retrieve the data outside of that array you will need to use an external application to grab it an send to a title, or can convert to an xml so one can pull anything within the file through the datasource with the correct xpath




What are you talking about. If you parse data correctly according to vmix data source engine you have all data :)




Just a comment for the OP !

like additionally from the vMix helpfiles:

This supports JSON data that is stored as an object array.
Each element in the array will be treated as a row.

Personally i find it easier to convert to XML and filter using proper xpaths (more flexible)

Indeed one can parse it however one likes but OP doesnt know how to
elvis55  
#10 Posted : Saturday, November 30, 2024 10:07:48 AM(UTC)
elvis55

Rank: Advanced Member

Groups: Registered
Joined: 3/17/2017(UTC)
Posts: 428
Switzerland
Location: Luzern - Schweiz

Thanks: 65 times
Was thanked: 56 time(s) in 50 post(s)
Users browsing this topic
Guest (3)
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.