| 
					
				 | 
			
			
				@@ -27,6 +27,11 @@ class Track: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def has_mp4_tags(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return self.has_tags and isinstance(self._mutagen.tags, mutagen.mp4.MP4Tags) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def _get_id3_textframe_int(self, tag_label): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        values = self._mutagen.tags['TXXX:' + tag_label].text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assert len(values) == 1, values 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return int(values[0]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def _get_mp4_freeform_int(self, tag_label): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         tag, = self._mutagen.tags['----:' + tag_label] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # "a signed big-endian integer with length one of { 1,2,3,4,8 } bytes" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -51,12 +56,10 @@ class Track: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             player, library_id, register_dt.timestamp(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if self.has_id3_tags: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            tag_label_id3 = 'TXXX:' + tag_label 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if tag_label_id3 in self._mutagen.tags: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                reg_data = self._mutagen.tags[tag_label_id3].text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                assert len(reg_data) == 1, reg_data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                assert int(reg_data[0]) == play_count, (reg_data, play_count) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                reg_count = self._get_id3_textframe_int(tag_label) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                assert reg_count == play_count, (reg_count, play_count) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            except KeyError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 # mutagen.id3._specs.EncodedTextSpec.write encodes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 # 'desc' and 'text' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 tag = mutagen.id3.TXXX( 
			 |