soimort/you-get — pull request #251 by twlz0ne (2013-10-04 13:49:33+00:00)
Title: Update baidu.py

1. 一次性获取所有数据，在 `baidu_download_album()` 和 `baidu_download_song()` 就无需捕获意外了：

```python
def baidu_get_song_data(...):
if inside_mainland_china:
get_data_from_fm_player
else:
get_data_from_baidu_music_page
if has_baidu_pan_link:
get_url_from_baidu_pan
```

fm 随心听提供的数据相对准确，所以对墙内用户来说是更好的来源。而百度音乐页面获取到的数据会出现这种情况：
![screen shot 2013-10-04 at 09 41 32](https://f.cloud.github.com/assets/2653486/1269558/253a3fe0-2cfb-11e3-80e7-eea3d9bf8a82.png)
![screen shot 2013-10-04 at 09 42 02](https://f.cloud.github.com/assets/2653486/1269559/2571f0fc-2cfb-11e3-854e-bbdac9346d61.png)

2. 改为使用 `download_urls()` 下载字幕，使文件名与mp3文件保持一致，避免因特殊字符带来的各种问题。

3. 不太确定会不会导致新的问题，欢迎提供链接以及在不同的地区做测试：

http://music.baidu.com/song/2284393
http://music.baidu.com/song/2045090