Cognitive radio (CR) is an intelligent revolutionary spectrum (channel) sharing technology and one of the most important new wireless technologies today. Cognitive wireless mesh network (CWMN) is a combination of a wireless mesh network and the CR technology. Multicast routing and spectrum allocation is an important challenge in CWMNs. In this paper, we design a weight-aware multicast routing algorithm for CWMNs. A wireless links weights computing function and computing algorithm (LWC) is proposed, which is aware of the weight of multicast traffics. On this basis, a distributed multicast routing and spectrum allocation algorithm with QoS constraints in cognitive wireless mesh networks (WMRA) is proposed. Minimizing the channel collision value is the objective of WMRA. The priority factor is taken into account to prevent high-weight multicast sessions from incurring more collision than low-weight multicast sessions. Firstly, WMRA computes the weights of wireless links using LWC for constructing multicast tree. Secondly, WMRA computes the channel collision value distributed based on the dynamic programming. Thirdly, WMRA constructs the multicast routing path and performing spectrum allocation for the new multicast tree. Simulation results show that WMRA algorithm can achieve the expected goal and achieve a lower channel collision value.