# Cai Jingyuan

Cai Jingyuan (simplified Chinese: 蔡镜源; traditional Chinese: 蔡鏡源; pinyin: Cài Jìngyuán; born 1 January 1987) is a former Chinese footballer.

## Club career

Cai Jingyuan would receive professional football training with Guangzhou F.C. in his youth until in the summer of 2004, he was selected to continue his football development abroad when a cooperation agreement between the Guangzhou Football Association and English football club Bristol Rovers was formed. He would be unable to obtain a labor certificate because he was not considered an elite player as Non-EU foreign players needing to have a 75% appearance rate in the national team to qualify. This meant he could not graduate to the senior team or play professional football in the UK and could only continue to study at the local College. He returned to China in 2010 after the Guangzhou Football Association asked him to come back to participate in the preparations for the 2010 Asian Games.
He did not participate within the Asian Games and joined amateur football and participated in the amateur football league. In 2012 he went to Dongguan Nancheng F.C. for a trial, but eventually chose to join Guangdong Sunray Cave as a team translator. In January 2013, he registered with the Macau Football Association and signed for Kuan Tai for the 2013 Campeonato da 1ª Divisão do Futebol season. He did not make an appearance for Kuan Tai and returned to Guangdong Sunray Cave as a player for their reserve team. On 24 April 2013 he would make his professional debut in a Chinese FA Cup game against Hohhot Dongjin in a 2-0 victory. On August 17, 2013, due to there being a striker shortage, he was able to make his league debut against Shijiazhuang Yongchang Junhao F.C. where he also scored his first goal in a 2-2 draw. He would go on to establish himself as vital member of the team and saw the club just miss out on promotion after coming third within the league at the end of the season. Unfortunately the club was unable to improve upon their results and there were wage arrears the following season, which saw the club dissolve.
On 27 February 2015, Cai would transfer to another second tier club in Shenzhen before the start of the 2015 China League One campaign. He would make his debut in a league game on 21 March 2015 against Xinjiang Tianshan Leopard F.C. that ended in a 2-1 defeat. This would be followed by his first goal for the club in a league game on 13 June 2015 against Qingdao Jonoon in a 2-1 defeat. He would establish himself as a regular within the team and go on to gain promotion with the club at the end of the 2018 China League One campaign. On 21 July 2019 he would make his Chinese Super League debut against Shandong Luneng Taishan F.C. in a 3-0 defeat.

## Career statistics

    As of 31 December 2020.
| Club | Season | League | League | League | Cup | Cup | Continental | Continental | Other | Other | Total | Total |
| Club | Season | Division | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals | Apps | Goals |
| Kuan Tai | 2013 | Campeonato da 1ª Divisão | 0 | 0 | 0 | 0 | – | – | 0 | 0 | 0 | 0 |
| Guangdong Sunray Cave | 2013 | China League One | 8 | 1 | 1 | 0 | – | – | 0 | 0 | 9 | 1 |
| Guangdong Sunray Cave | 2014 | China League One | 27 | 3 | 1 | 0 | – | – | 0 | 0 | 28 | 3 |
| Guangdong Sunray Cave | Total | Total | 35 | 4 | 2 | 0 | 0 | 0 | 0 | 0 | 37 | 4 |
| Shenzhen | 2015 | China League One | 23 | 6 | 1 | 0 | – | – | 0 | 0 | 24 | 6 |
| Shenzhen | 2016 | China League One | 25 | 1 | 1 | 0 | – | – | 0 | 0 | 26 | 1 |
| Shenzhen | 2017 | China League One | 10 | 1 | 2 | 0 | – | – | 0 | 0 | 12 | 1 |
| Shenzhen | 2018 | China League One | 1 | 0 | 0 | 0 | – | – | 0 | 0 | 1 | 0 |
| Shenzhen | 2019 | Chinese Super League | 6 | 0 | 1 | 0 | – | – | 0 | 0 | 7 | 0 |
| Shenzhen | 2020 | Chinese Super League | 0 | 0 | 0 | 0 | – | – | 0 | 0 | 0 | 0 |
| Shenzhen | Total | Total | 65 | 8 | 5 | 0 | 0 | 0 | 0 | 0 | 70 | 8 |
| Career total | Career total | Career total | 81 | 9 | 7 | 0 | 0 | 0 | 0 | 0 | 88 | 9 |

### Notes

* 1 2 3 4 5 6 Appearances in the Chinese FA Cup