Skip to content

Commit

Permalink
Merge pull request #12 from dotnettools/dev
Browse files Browse the repository at this point in the history
Fixed null uriString exception
  • Loading branch information
javidsho authored Jun 28, 2020
2 parents dbda2fa + ea6cee1 commit f993d55
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 20 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ to easily add more or even override part of grabbing algorithm with your own cod
Include *SharpGrabber* library in your own .NET projects.

### Install via <a href="https://www.nuget.org/packages/SharpGrabber/">NuGet</a>
Install-Package SharpGrabber -Version 1.1.0
Install-Package SharpGrabber -Version 1.2.0

## SharpGrabber Usage Example

Expand Down Expand Up @@ -67,7 +67,7 @@ To contribute to this project, I'd appreciate if you'd help with adding support
more top providers such as *Vimeo*, *DailyMotion* etc.

## License
Copyright &copy; 2019 Javid Shoaei<br />
Copyright &copy; 2020 Javid Shoaei<br />
All Rights Reserved &reg;

This project is licensed under the GNU Lesser General Public License (LGPL) version 3.
Expand Down
24 changes: 8 additions & 16 deletions src/SharpGrabber/Internal/Grabbers/YouTubeGrabber.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ protected virtual void UnmangleEntries(List<KeyValuePair<string, string>> entrie
{
sb.Clear();
var currentKey = pair.Key;
foreach (var ch in pair.Value.Concat(new[] {'\0'}))
foreach (var ch in pair.Value.Concat(new[] { '\0' }))
{
switch (ch)
{
Expand Down Expand Up @@ -118,7 +118,7 @@ void Feed(string key, string value)

case "type":
draft.Type = value;
var parts = value.Split(new[] {';'}, 2, StringSplitOptions.RemoveEmptyEntries);
var parts = value.Split(new[] { ';' }, 2, StringSplitOptions.RemoveEmptyEntries);
draft.Mime = parts[0];
break;

Expand Down Expand Up @@ -192,7 +192,7 @@ void Feed(string key, string value)

case "type":
draft.Type = value;
var parts = value.Split(new[] {';'}, 2, StringSplitOptions.RemoveEmptyEntries);
var parts = value.Split(new[] { ';' }, 2, StringSplitOptions.RemoveEmptyEntries);
draft.Mime = parts[0];
break;

Expand Down Expand Up @@ -268,8 +268,8 @@ protected virtual YouTubeMuxedStream TranslateMuxedStream(JObject input)
};
result.Mime = ExtractActualMime(result.Type);

// get cipher info
var cipher = input.Value<string>("cipher");
// get cipher info (+signatureCipher)
var cipher = input.Value<string>("cipher") ?? input.Value<string>("signatureCipher");
if (!string.IsNullOrEmpty(cipher))
UpdateStreamCipherInfo(result, cipher);

Expand Down Expand Up @@ -301,7 +301,7 @@ protected virtual YouTubeAdaptiveStream TranslateAdaptiveStream(JObject input)
result.Mime = ExtractActualMime(result.Type);

// get cipher info
var cipher = input.Value<string>("cipher");
var cipher = input.Value<string>("cipher") ?? input.Value<string>("signatureCipher");
if (!string.IsNullOrEmpty(cipher))
UpdateStreamCipherInfo(result, cipher);

Expand Down Expand Up @@ -376,7 +376,7 @@ protected virtual YouTubePlayerResponse ExtractPlayerResponseMetadata(JToken pla
/// </summary>
protected virtual async Task<YouTubeMetadata> DownloadMetadata(string id, CancellationToken cancellationToken)
{
var rawMetadata = new Dictionary<string, string>();
IDictionary<string, string> rawMetadata;
Status.Update(null, "Downloading metadata...", WorkStatusType.DownloadingFile);

// make http client
Expand All @@ -387,15 +387,7 @@ protected virtual async Task<YouTubeMetadata> DownloadMetadata(string id, Cancel
{
// decode metadata into rawMetadata
var content = await response.Content.ReadAsStringAsync();
var @params = content.Split('&');
foreach (var param in @params)
{
var pair = param.Split('=')
.Select(Uri.UnescapeDataString)
.ToArray();

rawMetadata.Add(pair[0], pair[1]);
}
rawMetadata = YouTubeUtils.ExtractUrlEncodedParamMap(content);
}

// extract metadata
Expand Down
4 changes: 2 additions & 2 deletions src/SharpGrabber/SharpGrabber.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Title>SharpGrabber</Title>
<Description>Grab information and media from YouTube and Instagram. Supports images, thumbnails, video, audio with different formats and qualities. YouTube deciphering is supported.</Description>
<Copyright>Copyright (C) 2019 Javid Shoaei</Copyright>
<Copyright>Copyright (C) 2020 Javid Shoaei</Copyright>
<PackageProjectUrl>https://github.com/dotnettools/SharpGrabber</PackageProjectUrl>
<PackageLicenseUrl></PackageLicenseUrl>
<RepositoryUrl>https://github.com/dotnettools/SharpGrabber</RepositoryUrl>
Expand All @@ -16,7 +16,7 @@
<PackageIconUrl>https://raw.githubusercontent.com/dotnettools/SharpGrabber/master/assets/icon.png</PackageIconUrl>
<FileVersion>1.1.0.0</FileVersion>
<AssemblyVersion>1.1.0.0</AssemblyVersion>
<Version>1.1.0</Version>
<Version>1.2.0</Version>
<RootNamespace>DotNetTools.SharpGrabber</RootNamespace>
<SignAssembly>false</SignAssembly>
<DelaySign>false</DelaySign>
Expand Down

0 comments on commit f993d55

Please sign in to comment.