132
134
QString fmtUrlMap = re.cap(1);
134
while (fmtUrlMap.contains('%'))
135
fmtUrlMap = QByteArray::fromPercentEncoding(fmtUrlMap.toAscii());
137
qDebug() << "fmtUrlMap" << fmtUrlMap;
135
fmtUrlMap = QByteArray::fromPercentEncoding(fmtUrlMap.toUtf8());
138
QString definitionName = settings.value("definition").toString();
139
int definitionCode = VideoDefinition::getDefinitionCode(definitionName);
141
// qDebug() << "fmtUrlMap" << fmtUrlMap;
138
142
QStringList formatUrls = fmtUrlMap.split(",", QString::SkipEmptyParts);
143
QHash<int, QString> urlMap;
139
144
foreach(QString formatUrl, formatUrls) {
140
145
int separator = formatUrl.indexOf("|");
141
146
if (separator == -1) continue;
142
147
int format = formatUrl.left(separator).toInt();
143
148
QString url = formatUrl.mid(separator + 1);
144
qDebug() << format << url;
149
QString definitionName = settings.value("definition").toString();
150
int definitionCode = VideoDefinition::getDefinitionCode(definitionName);
151
if (definitionCode == 18) {
152
// This is assumed always available
153
foundVideoUrl(videoToken, 18);
155
findVideoUrl(definitionCode);
150
if (format == definitionCode) {
151
QUrl videoUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
152
m_streamUrl = videoUrl;
153
emit gotStreamUrl(videoUrl);
154
loadingStreamUrl = false;
158
urlMap.insert(format, url);
161
QList<int> definitionCodes = VideoDefinition::getDefinitionCodes();
162
int currentIndex = definitionCodes.indexOf(definitionCode);
163
int previousIndex = 0;
164
while (currentIndex >= 0) {
165
previousIndex = currentIndex - 1;
166
int definitionCode = definitionCodes.at(previousIndex);
167
if (urlMap.contains(definitionCode)) {
168
qDebug() << "Found format" << definitionCode;
169
QString url = urlMap.value(definitionCode);
170
QUrl videoUrl = QUrl::fromEncoded(url.toUtf8(), QUrl::StrictMode);
171
m_streamUrl = videoUrl;
172
emit gotStreamUrl(videoUrl);
173
loadingStreamUrl = false;
179
emit errorStreamUrl(tr("Cannot get video stream for %1").arg(m_webpage.toString()));